Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
3fb1135cb7 | ||
![]() |
4a69a2a632 | ||
![]() |
351f444f9d | ||
![]() |
67f2e507e8 | ||
![]() |
aa19281dd3 | ||
![]() |
843c9b308c | ||
![]() |
21d95cf6d8 | ||
![]() |
e4e5e5a67f | ||
![]() |
b507461c0f | ||
![]() |
676a87eac6 |
12
NEWS
12
NEWS
@@ -1,3 +1,15 @@
|
|||||||
|
3.16.3
|
||||||
|
======
|
||||||
|
* Fix kill dialog not showing when first PING fails [Rui; #749076]
|
||||||
|
* wayland: Reset idle time appropriately [Rui; #749711, #749994]
|
||||||
|
* Fix crash when trying to focus a hidden window [Florian; #751715]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Rui Matos, Florian Müllner, Jasper St. Pierre
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Bernd Homuth [de]
|
||||||
|
|
||||||
3.16.2
|
3.16.2
|
||||||
======
|
======
|
||||||
* Fix scroll button setting [Ondrej; #747967]
|
* Fix scroll button setting [Ondrej; #747967]
|
||||||
|
@@ -2,7 +2,7 @@ AC_PREREQ(2.62)
|
|||||||
|
|
||||||
m4_define([mutter_major_version], [3])
|
m4_define([mutter_major_version], [3])
|
||||||
m4_define([mutter_minor_version], [16])
|
m4_define([mutter_minor_version], [16])
|
||||||
m4_define([mutter_micro_version], [2])
|
m4_define([mutter_micro_version], [3])
|
||||||
|
|
||||||
m4_define([mutter_version],
|
m4_define([mutter_version],
|
||||||
[mutter_major_version.mutter_minor_version.mutter_micro_version])
|
[mutter_major_version.mutter_minor_version.mutter_micro_version])
|
||||||
|
@@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
#include <meta/main.h>
|
#include <meta/main.h>
|
||||||
#include <clutter/evdev/clutter-evdev.h>
|
#include <clutter/evdev/clutter-evdev.h>
|
||||||
|
#include <libupower-glib/upower.h>
|
||||||
|
|
||||||
#include "meta-barrier-native.h"
|
#include "meta-barrier-native.h"
|
||||||
#include "meta-idle-monitor-native.h"
|
#include "meta-idle-monitor-native.h"
|
||||||
@@ -39,10 +40,11 @@
|
|||||||
struct _MetaBackendNativePrivate
|
struct _MetaBackendNativePrivate
|
||||||
{
|
{
|
||||||
MetaLauncher *launcher;
|
MetaLauncher *launcher;
|
||||||
|
|
||||||
MetaBarrierManagerNative *barrier_manager;
|
MetaBarrierManagerNative *barrier_manager;
|
||||||
|
UpClient *up_client;
|
||||||
GSettings *keyboard_settings;
|
guint sleep_signal_id;
|
||||||
|
GCancellable *cancellable;
|
||||||
|
GDBusConnection *system_bus;
|
||||||
};
|
};
|
||||||
typedef struct _MetaBackendNativePrivate MetaBackendNativePrivate;
|
typedef struct _MetaBackendNativePrivate MetaBackendNativePrivate;
|
||||||
|
|
||||||
@@ -56,9 +58,69 @@ meta_backend_native_finalize (GObject *object)
|
|||||||
|
|
||||||
meta_launcher_free (priv->launcher);
|
meta_launcher_free (priv->launcher);
|
||||||
|
|
||||||
|
g_object_unref (priv->up_client);
|
||||||
|
if (priv->sleep_signal_id)
|
||||||
|
g_dbus_connection_signal_unsubscribe (priv->system_bus, priv->sleep_signal_id);
|
||||||
|
g_cancellable_cancel (priv->cancellable);
|
||||||
|
g_clear_object (&priv->cancellable);
|
||||||
|
g_clear_object (&priv->system_bus);
|
||||||
|
|
||||||
G_OBJECT_CLASS (meta_backend_native_parent_class)->finalize (object);
|
G_OBJECT_CLASS (meta_backend_native_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
prepare_for_sleep_cb (GDBusConnection *connection,
|
||||||
|
const gchar *sender_name,
|
||||||
|
const gchar *object_path,
|
||||||
|
const gchar *interface_name,
|
||||||
|
const gchar *signal_name,
|
||||||
|
GVariant *parameters,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
gboolean suspending;
|
||||||
|
g_variant_get (parameters, "(b)", &suspending);
|
||||||
|
if (suspending)
|
||||||
|
return;
|
||||||
|
meta_idle_monitor_native_reset_idletime (meta_idle_monitor_get_core ());
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
system_bus_gotten_cb (GObject *object,
|
||||||
|
GAsyncResult *res,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
MetaBackendNativePrivate *priv;
|
||||||
|
GDBusConnection *bus;
|
||||||
|
|
||||||
|
bus = g_bus_get_finish (res, NULL);
|
||||||
|
if (!bus)
|
||||||
|
return;
|
||||||
|
|
||||||
|
priv = meta_backend_native_get_instance_private (META_BACKEND_NATIVE (user_data));
|
||||||
|
priv->system_bus = bus;
|
||||||
|
priv->sleep_signal_id = g_dbus_connection_signal_subscribe (priv->system_bus,
|
||||||
|
"org.freedesktop.login1",
|
||||||
|
"org.freedesktop.login1.Manager",
|
||||||
|
"PrepareForSleep",
|
||||||
|
"/org/freedesktop/login1",
|
||||||
|
NULL,
|
||||||
|
G_DBUS_SIGNAL_FLAGS_NONE,
|
||||||
|
prepare_for_sleep_cb,
|
||||||
|
NULL,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
lid_is_closed_changed_cb (UpClient *client,
|
||||||
|
GParamSpec *pspec,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
if (up_client_get_lid_is_closed (client))
|
||||||
|
return;
|
||||||
|
|
||||||
|
meta_idle_monitor_native_reset_idletime (meta_idle_monitor_get_core ());
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
constrain_to_barriers (ClutterInputDevice *device,
|
constrain_to_barriers (ClutterInputDevice *device,
|
||||||
guint32 time,
|
guint32 time,
|
||||||
@@ -270,6 +332,16 @@ meta_backend_native_init (MetaBackendNative *native)
|
|||||||
priv->launcher = meta_launcher_new ();
|
priv->launcher = meta_launcher_new ();
|
||||||
|
|
||||||
priv->barrier_manager = meta_barrier_manager_native_new ();
|
priv->barrier_manager = meta_barrier_manager_native_new ();
|
||||||
|
|
||||||
|
priv->up_client = up_client_new ();
|
||||||
|
g_signal_connect (priv->up_client, "notify::lid-is-closed",
|
||||||
|
G_CALLBACK (lid_is_closed_changed_cb), NULL);
|
||||||
|
|
||||||
|
priv->cancellable = g_cancellable_new ();
|
||||||
|
g_bus_get (G_BUS_TYPE_SYSTEM,
|
||||||
|
priv->cancellable,
|
||||||
|
system_bus_gotten_cb,
|
||||||
|
native);
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
|
@@ -43,6 +43,7 @@
|
|||||||
|
|
||||||
#include "backends/meta-backend-private.h"
|
#include "backends/meta-backend-private.h"
|
||||||
#include "meta-cursor-renderer-native.h"
|
#include "meta-cursor-renderer-native.h"
|
||||||
|
#include "meta-idle-monitor-native.h"
|
||||||
|
|
||||||
struct _MetaLauncher
|
struct _MetaLauncher
|
||||||
{
|
{
|
||||||
@@ -110,6 +111,7 @@ session_unpause (void)
|
|||||||
|
|
||||||
clutter_actor_queue_redraw (stage);
|
clutter_actor_queue_redraw (stage);
|
||||||
meta_cursor_renderer_native_force_update (META_CURSOR_RENDERER_NATIVE (renderer));
|
meta_cursor_renderer_native_force_update (META_CURSOR_RENDERER_NATIVE (renderer));
|
||||||
|
meta_idle_monitor_native_reset_idletime (meta_idle_monitor_get_core ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -32,6 +32,9 @@
|
|||||||
ClutterActor *meta_shaped_texture_new (void);
|
ClutterActor *meta_shaped_texture_new (void);
|
||||||
void meta_shaped_texture_set_texture (MetaShapedTexture *stex,
|
void meta_shaped_texture_set_texture (MetaShapedTexture *stex,
|
||||||
CoglTexture *texture);
|
CoglTexture *texture);
|
||||||
|
void meta_shaped_texture_set_fallback_size (MetaShapedTexture *stex,
|
||||||
|
guint fallback_width,
|
||||||
|
guint fallback_height);
|
||||||
gboolean meta_shaped_texture_is_obscured (MetaShapedTexture *self);
|
gboolean meta_shaped_texture_is_obscured (MetaShapedTexture *self);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -86,6 +86,7 @@ struct _MetaShapedTexturePrivate
|
|||||||
cairo_region_t *unobscured_region;
|
cairo_region_t *unobscured_region;
|
||||||
|
|
||||||
guint tex_width, tex_height;
|
guint tex_width, tex_height;
|
||||||
|
guint fallback_width, fallback_height;
|
||||||
|
|
||||||
guint create_mipmaps : 1;
|
guint create_mipmaps : 1;
|
||||||
};
|
};
|
||||||
@@ -136,7 +137,20 @@ set_unobscured_region (MetaShapedTexture *self,
|
|||||||
g_clear_pointer (&priv->unobscured_region, (GDestroyNotify) cairo_region_destroy);
|
g_clear_pointer (&priv->unobscured_region, (GDestroyNotify) cairo_region_destroy);
|
||||||
if (unobscured_region)
|
if (unobscured_region)
|
||||||
{
|
{
|
||||||
cairo_rectangle_int_t bounds = { 0, 0, priv->tex_width, priv->tex_height };
|
guint width, height;
|
||||||
|
|
||||||
|
if (priv->texture)
|
||||||
|
{
|
||||||
|
width = priv->tex_width;
|
||||||
|
height = priv->tex_height;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
width = priv->fallback_width;
|
||||||
|
height = priv->fallback_height;
|
||||||
|
}
|
||||||
|
|
||||||
|
cairo_rectangle_int_t bounds = { 0, 0, width, height };
|
||||||
priv->unobscured_region = cairo_region_copy (unobscured_region);
|
priv->unobscured_region = cairo_region_copy (unobscured_region);
|
||||||
cairo_region_intersect_rectangle (priv->unobscured_region, &bounds);
|
cairo_region_intersect_rectangle (priv->unobscured_region, &bounds);
|
||||||
}
|
}
|
||||||
@@ -499,16 +513,21 @@ meta_shaped_texture_get_preferred_width (ClutterActor *self,
|
|||||||
gfloat *natural_width_p)
|
gfloat *natural_width_p)
|
||||||
{
|
{
|
||||||
MetaShapedTexturePrivate *priv;
|
MetaShapedTexturePrivate *priv;
|
||||||
|
guint width;
|
||||||
|
|
||||||
g_return_if_fail (META_IS_SHAPED_TEXTURE (self));
|
g_return_if_fail (META_IS_SHAPED_TEXTURE (self));
|
||||||
|
|
||||||
priv = META_SHAPED_TEXTURE (self)->priv;
|
priv = META_SHAPED_TEXTURE (self)->priv;
|
||||||
|
|
||||||
if (min_width_p)
|
if (priv->texture)
|
||||||
*min_width_p = priv->tex_width;
|
width = priv->tex_width;
|
||||||
|
else
|
||||||
|
width = priv->fallback_width;
|
||||||
|
|
||||||
|
if (min_width_p)
|
||||||
|
*min_width_p = width;
|
||||||
if (natural_width_p)
|
if (natural_width_p)
|
||||||
*natural_width_p = priv->tex_width;
|
*natural_width_p = width;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -518,16 +537,21 @@ meta_shaped_texture_get_preferred_height (ClutterActor *self,
|
|||||||
gfloat *natural_height_p)
|
gfloat *natural_height_p)
|
||||||
{
|
{
|
||||||
MetaShapedTexturePrivate *priv;
|
MetaShapedTexturePrivate *priv;
|
||||||
|
guint height;
|
||||||
|
|
||||||
g_return_if_fail (META_IS_SHAPED_TEXTURE (self));
|
g_return_if_fail (META_IS_SHAPED_TEXTURE (self));
|
||||||
|
|
||||||
priv = META_SHAPED_TEXTURE (self)->priv;
|
priv = META_SHAPED_TEXTURE (self)->priv;
|
||||||
|
|
||||||
if (min_height_p)
|
if (priv->texture)
|
||||||
*min_height_p = priv->tex_height;
|
height = priv->tex_height;
|
||||||
|
else
|
||||||
|
height = priv->fallback_height;
|
||||||
|
|
||||||
|
if (min_height_p)
|
||||||
|
*min_height_p = height;
|
||||||
if (natural_height_p)
|
if (natural_height_p)
|
||||||
*natural_height_p = priv->tex_height;
|
*natural_height_p = height;
|
||||||
}
|
}
|
||||||
|
|
||||||
static cairo_region_t *
|
static cairo_region_t *
|
||||||
@@ -860,6 +884,17 @@ meta_shaped_texture_get_image (MetaShapedTexture *stex,
|
|||||||
return surface;
|
return surface;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_shaped_texture_set_fallback_size (MetaShapedTexture *self,
|
||||||
|
guint fallback_width,
|
||||||
|
guint fallback_height)
|
||||||
|
{
|
||||||
|
MetaShapedTexturePrivate *priv = self->priv;
|
||||||
|
|
||||||
|
priv->fallback_width = fallback_width;
|
||||||
|
priv->fallback_height = fallback_height;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_shaped_texture_cull_out (MetaCullable *cullable,
|
meta_shaped_texture_cull_out (MetaCullable *cullable,
|
||||||
cairo_region_t *unobscured_region,
|
cairo_region_t *unobscured_region,
|
||||||
|
@@ -416,6 +416,7 @@ meta_surface_actor_x11_set_size (MetaSurfaceActorX11 *self,
|
|||||||
int width, int height)
|
int width, int height)
|
||||||
{
|
{
|
||||||
MetaSurfaceActorX11Private *priv = meta_surface_actor_x11_get_instance_private (self);
|
MetaSurfaceActorX11Private *priv = meta_surface_actor_x11_get_instance_private (self);
|
||||||
|
MetaShapedTexture *stex = meta_surface_actor_get_texture (META_SURFACE_ACTOR (self));
|
||||||
|
|
||||||
if (priv->last_width == width &&
|
if (priv->last_width == width &&
|
||||||
priv->last_height == height)
|
priv->last_height == height)
|
||||||
@@ -424,4 +425,5 @@ meta_surface_actor_x11_set_size (MetaSurfaceActorX11 *self,
|
|||||||
priv->size_changed = TRUE;
|
priv->size_changed = TRUE;
|
||||||
priv->last_width = width;
|
priv->last_width = width;
|
||||||
priv->last_height = height;
|
priv->last_height = height;
|
||||||
|
meta_shaped_texture_set_fallback_size (stex, width, height);
|
||||||
}
|
}
|
||||||
|
@@ -160,12 +160,7 @@ void
|
|||||||
meta_window_set_alive (MetaWindow *window,
|
meta_window_set_alive (MetaWindow *window,
|
||||||
gboolean is_alive)
|
gboolean is_alive)
|
||||||
{
|
{
|
||||||
if (window->is_alive == is_alive)
|
if (is_alive)
|
||||||
return;
|
|
||||||
|
|
||||||
window->is_alive = is_alive;
|
|
||||||
|
|
||||||
if (window->is_alive)
|
|
||||||
kill_delete_dialog (window);
|
kill_delete_dialog (window);
|
||||||
else
|
else
|
||||||
show_delete_dialog (window, CurrentTime);
|
show_delete_dialog (window, CurrentTime);
|
||||||
|
@@ -1273,16 +1273,13 @@ get_default_focus_window (MetaStack *stack,
|
|||||||
if (window->unmaps_pending > 0)
|
if (window->unmaps_pending > 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (window->minimized)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (window->unmanaging)
|
if (window->unmanaging)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!(window->input || window->take_focus))
|
if (!(window->input || window->take_focus))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (workspace != NULL && !meta_window_located_on_workspace (window, workspace))
|
if (!meta_window_should_be_showing (window))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (must_be_at_point && !window_contains_point (window, root_x, root_y))
|
if (must_be_at_point && !window_contains_point (window, root_x, root_y))
|
||||||
|
@@ -434,7 +434,6 @@ struct _MetaWindow
|
|||||||
|
|
||||||
/* Managed by delete.c */
|
/* Managed by delete.c */
|
||||||
int dialog_pid;
|
int dialog_pid;
|
||||||
guint is_alive : 1;
|
|
||||||
|
|
||||||
/* maintained by group.c */
|
/* maintained by group.c */
|
||||||
MetaGroup *group;
|
MetaGroup *group;
|
||||||
|
@@ -115,7 +115,7 @@ struct _MetaFrameGeometry
|
|||||||
|
|
||||||
/* used for a memset hack */
|
/* used for a memset hack */
|
||||||
#define ADDRESS_OF_BUTTON_RECTS(fgeom) (((char*)(fgeom)) + G_STRUCT_OFFSET (MetaFrameGeometry, close_rect))
|
#define ADDRESS_OF_BUTTON_RECTS(fgeom) (((char*)(fgeom)) + G_STRUCT_OFFSET (MetaFrameGeometry, close_rect))
|
||||||
#define LENGTH_OF_BUTTON_RECTS (G_STRUCT_OFFSET (MetaFrameGeometry, unstick_rect) + sizeof (GdkRectangle) - G_STRUCT_OFFSET (MetaFrameGeometry, close_rect))
|
#define LENGTH_OF_BUTTON_RECTS (G_STRUCT_OFFSET (MetaFrameGeometry, unstick_rect) + sizeof (MetaButtonSpace) - G_STRUCT_OFFSET (MetaFrameGeometry, close_rect))
|
||||||
|
|
||||||
/* The button rects (if changed adjust memset hack) */
|
/* The button rects (if changed adjust memset hack) */
|
||||||
MetaButtonSpace close_rect;
|
MetaButtonSpace close_rect;
|
||||||
|
Reference in New Issue
Block a user