Move position-changed / size-changed signals to the MetaWindow
They fit more appropriately over here... https://bugzilla.gnome.org/show_bug.cgi?id=720631
This commit is contained in:
parent
4efe4483fb
commit
a0ef7c7142
@ -37,15 +37,6 @@
|
|||||||
#include "monitor-private.h"
|
#include "monitor-private.h"
|
||||||
#include "meta-cullable.h"
|
#include "meta-cullable.h"
|
||||||
|
|
||||||
enum {
|
|
||||||
POSITION_CHANGED,
|
|
||||||
SIZE_CHANGED,
|
|
||||||
LAST_SIGNAL
|
|
||||||
};
|
|
||||||
|
|
||||||
static guint signals[LAST_SIGNAL] = {0};
|
|
||||||
|
|
||||||
|
|
||||||
struct _MetaWindowActorPrivate
|
struct _MetaWindowActorPrivate
|
||||||
{
|
{
|
||||||
MetaWindow *window;
|
MetaWindow *window;
|
||||||
@ -245,19 +236,6 @@ meta_window_actor_class_init (MetaWindowActorClass *klass)
|
|||||||
g_object_class_install_property (object_class,
|
g_object_class_install_property (object_class,
|
||||||
PROP_SHADOW_CLASS,
|
PROP_SHADOW_CLASS,
|
||||||
pspec);
|
pspec);
|
||||||
|
|
||||||
signals[POSITION_CHANGED] =
|
|
||||||
g_signal_new ("position-changed",
|
|
||||||
G_TYPE_FROM_CLASS (klass),
|
|
||||||
G_SIGNAL_RUN_LAST,
|
|
||||||
0, NULL, NULL, NULL,
|
|
||||||
G_TYPE_NONE, 0);
|
|
||||||
signals[SIZE_CHANGED] =
|
|
||||||
g_signal_new ("size-changed",
|
|
||||||
G_TYPE_FROM_CLASS (klass),
|
|
||||||
G_SIGNAL_RUN_LAST,
|
|
||||||
0, NULL, NULL, NULL,
|
|
||||||
G_TYPE_NONE, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -327,8 +305,6 @@ surface_allocation_changed_notify (ClutterActor *actor,
|
|||||||
{
|
{
|
||||||
meta_window_actor_sync_actor_geometry (self, FALSE);
|
meta_window_actor_sync_actor_geometry (self, FALSE);
|
||||||
meta_window_actor_update_shape (self);
|
meta_window_actor_update_shape (self);
|
||||||
|
|
||||||
g_signal_emit (self, signals[SIZE_CHANGED], 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
@ -1390,8 +1366,6 @@ meta_window_actor_sync_actor_geometry (MetaWindowActor *self,
|
|||||||
window_rect.x, window_rect.y);
|
window_rect.x, window_rect.y);
|
||||||
clutter_actor_set_size (CLUTTER_ACTOR (self),
|
clutter_actor_set_size (CLUTTER_ACTOR (self),
|
||||||
window_rect.width, window_rect.height);
|
window_rect.width, window_rect.height);
|
||||||
|
|
||||||
g_signal_emit (self, signals[POSITION_CHANGED], 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -1766,17 +1740,6 @@ check_needs_x11_pixmap (MetaWindowActor *self)
|
|||||||
g_warning ("NOTE: Not using GLX TFP!\n");
|
g_warning ("NOTE: Not using GLX TFP!\n");
|
||||||
|
|
||||||
meta_surface_actor_set_texture (META_SURFACE_ACTOR (priv->surface), texture);
|
meta_surface_actor_set_texture (META_SURFACE_ACTOR (priv->surface), texture);
|
||||||
|
|
||||||
/* ::size-changed is supposed to refer to meta_window_get_frame_rect().
|
|
||||||
* Emitting it here works pretty much OK because a new value of the
|
|
||||||
* *input* rect (which is the outer rect with the addition of invisible
|
|
||||||
* borders) forces a new pixmap and we get here. In the rare case where
|
|
||||||
* a change to the window size was exactly balanced by a change to the
|
|
||||||
* invisible borders, we would miss emitting the signal. We would also
|
|
||||||
* emit spurious signals when we get a new pixmap without a new size,
|
|
||||||
* but that should be mostly harmless.
|
|
||||||
*/
|
|
||||||
g_signal_emit (self, signals[SIZE_CHANGED], 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
priv->needs_pixmap = FALSE;
|
priv->needs_pixmap = FALSE;
|
||||||
|
@ -202,6 +202,8 @@ enum
|
|||||||
FOCUS,
|
FOCUS,
|
||||||
RAISED,
|
RAISED,
|
||||||
UNMANAGED,
|
UNMANAGED,
|
||||||
|
SIZE_CHANGED,
|
||||||
|
POSITION_CHANGED,
|
||||||
|
|
||||||
LAST_SIGNAL
|
LAST_SIGNAL
|
||||||
};
|
};
|
||||||
@ -609,6 +611,40 @@ meta_window_class_init (MetaWindowClass *klass)
|
|||||||
G_STRUCT_OFFSET (MetaWindowClass, unmanaged),
|
G_STRUCT_OFFSET (MetaWindowClass, unmanaged),
|
||||||
NULL, NULL, NULL,
|
NULL, NULL, NULL,
|
||||||
G_TYPE_NONE, 0);
|
G_TYPE_NONE, 0);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MetaWindow::position-changed:
|
||||||
|
* @window: a #MetaWindow
|
||||||
|
*
|
||||||
|
* This is emitted when the position of a window might
|
||||||
|
* have changed. Specifically, this is emitted when the
|
||||||
|
* position of the toplevel window has changed, or when
|
||||||
|
* the position of the client window has changed.
|
||||||
|
*/
|
||||||
|
window_signals[POSITION_CHANGED] =
|
||||||
|
g_signal_new ("position-changed",
|
||||||
|
G_TYPE_FROM_CLASS (object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
0,
|
||||||
|
NULL, NULL, NULL,
|
||||||
|
G_TYPE_NONE, 0);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MetaWindow::size-changed:
|
||||||
|
* @window: a #MetaWindow
|
||||||
|
*
|
||||||
|
* This is emitted when the position of a window might
|
||||||
|
* have changed. Specifically, this is emitted when the
|
||||||
|
* size of the toplevel window has changed, or when the
|
||||||
|
* size of the client window has changed.
|
||||||
|
*/
|
||||||
|
window_signals[SIZE_CHANGED] =
|
||||||
|
g_signal_new ("size-changed",
|
||||||
|
G_TYPE_FROM_CLASS (object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
0,
|
||||||
|
NULL, NULL, NULL,
|
||||||
|
G_TYPE_NONE, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -4954,6 +4990,12 @@ meta_window_move_resize_internal (MetaWindow *window,
|
|||||||
else if (is_user_action)
|
else if (is_user_action)
|
||||||
save_user_window_placement (window);
|
save_user_window_placement (window);
|
||||||
|
|
||||||
|
if (need_move_client || need_move_frame)
|
||||||
|
g_signal_emit (window, window_signals[POSITION_CHANGED], 0);
|
||||||
|
|
||||||
|
if (need_resize_client || need_resize_frame)
|
||||||
|
g_signal_emit (window, window_signals[SIZE_CHANGED], 0);
|
||||||
|
|
||||||
if (need_move_frame || need_resize_frame ||
|
if (need_move_frame || need_resize_frame ||
|
||||||
need_move_client || need_resize_client ||
|
need_move_client || need_resize_client ||
|
||||||
did_placement || is_wayland_resize)
|
did_placement || is_wayland_resize)
|
||||||
|
Loading…
Reference in New Issue
Block a user