Compare commits
9 Commits
3.20.2
...
3.10.4-way
Author | SHA1 | Date | |
---|---|---|---|
![]() |
7abc2762e1 | ||
![]() |
d59472bb6b | ||
![]() |
28d2f36b72 | ||
![]() |
766181eeae | ||
![]() |
5dd2e4bc72 | ||
![]() |
93ee413df2 | ||
![]() |
06186639fc | ||
![]() |
5d4138b933 | ||
![]() |
bafbbc62e2 |
12
NEWS
12
NEWS
@@ -1,3 +1,15 @@
|
|||||||
|
3.10.4
|
||||||
|
======
|
||||||
|
* Expose MetaWindow:skip-taskbar property [Florian; #723307]
|
||||||
|
* Fix legacy tray icons showing up blank [Adel; #721596]
|
||||||
|
* Fix configuration of cloned monitors [Adel; #710610]
|
||||||
|
* Misc. bug fixes [Jasper, Adel, Giovanni; #720630, #723468, #724257, #724258,
|
||||||
|
#724364]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Giovanni Campagna, Adel Gadllah, Ryan Lortie, Florian Müllner,
|
||||||
|
Jasper St. Pierre
|
||||||
|
|
||||||
3.10.1
|
3.10.1
|
||||||
======
|
======
|
||||||
* Don't apply fullscreen workarounds to CSD windows [Giovanni; #708718]
|
* Don't apply fullscreen workarounds to CSD windows [Giovanni; #708718]
|
||||||
|
@@ -2,7 +2,7 @@ AC_PREREQ(2.50)
|
|||||||
|
|
||||||
m4_define([mutter_major_version], [3])
|
m4_define([mutter_major_version], [3])
|
||||||
m4_define([mutter_minor_version], [10])
|
m4_define([mutter_minor_version], [10])
|
||||||
m4_define([mutter_micro_version], [1])
|
m4_define([mutter_micro_version], [4])
|
||||||
|
|
||||||
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])
|
||||||
|
@@ -767,8 +767,12 @@ meta_window_actor_get_paint_volume (ClutterActor *actor,
|
|||||||
gdk_rectangle_union (&bounds, &shadow_bounds, &bounds);
|
gdk_rectangle_union (&bounds, &shadow_bounds, &bounds);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (priv->unobscured_region)
|
if (priv->unobscured_region && !clutter_actor_has_mapped_clones (actor))
|
||||||
cairo_region_intersect_rectangle (priv->unobscured_region, &bounds);
|
{
|
||||||
|
cairo_rectangle_int_t unobscured_bounds;
|
||||||
|
cairo_region_get_extents (priv->unobscured_region, &unobscured_bounds);
|
||||||
|
gdk_rectangle_intersect (&bounds, &unobscured_bounds, &bounds);
|
||||||
|
}
|
||||||
|
|
||||||
origin.x = bounds.x;
|
origin.x = bounds.x;
|
||||||
origin.y = bounds.y;
|
origin.y = bounds.y;
|
||||||
@@ -1438,6 +1442,12 @@ meta_window_actor_destroy (MetaWindowActor *self)
|
|||||||
window_type = meta_window_get_window_type (window);
|
window_type = meta_window_get_window_type (window);
|
||||||
meta_window_set_compositor_private (window, NULL);
|
meta_window_set_compositor_private (window, NULL);
|
||||||
|
|
||||||
|
if (priv->send_frame_messages_timer != 0)
|
||||||
|
{
|
||||||
|
g_source_remove (priv->send_frame_messages_timer);
|
||||||
|
priv->send_frame_messages_timer = 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We remove the window from internal lookup hashes and thus any other
|
* We remove the window from internal lookup hashes and thus any other
|
||||||
* unmap events etc fail
|
* unmap events etc fail
|
||||||
|
@@ -537,7 +537,7 @@ make_watch (MetaIdleMonitor *monitor,
|
|||||||
watch->timeout_source = source;
|
watch->timeout_source = source;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (monitor->user_active_alarm != None)
|
||||||
{
|
{
|
||||||
if (timeout_msec != 0)
|
if (timeout_msec != 0)
|
||||||
{
|
{
|
||||||
|
@@ -290,7 +290,7 @@ make_logical_config (MetaMonitorManager *manager)
|
|||||||
|
|
||||||
for (j = 0; j < monitor_infos->len; j++)
|
for (j = 0; j < monitor_infos->len; j++)
|
||||||
{
|
{
|
||||||
MetaMonitorInfo *info = &g_array_index (monitor_infos, MetaMonitorInfo, i);
|
MetaMonitorInfo *info = &g_array_index (monitor_infos, MetaMonitorInfo, j);
|
||||||
if (meta_rectangle_equal (&crtc->rect,
|
if (meta_rectangle_equal (&crtc->rect,
|
||||||
&info->rect))
|
&info->rect))
|
||||||
{
|
{
|
||||||
|
@@ -391,6 +391,8 @@ int
|
|||||||
meta_screen_monitor_index_to_xinerama_index (MetaScreen *screen,
|
meta_screen_monitor_index_to_xinerama_index (MetaScreen *screen,
|
||||||
int index)
|
int index)
|
||||||
{
|
{
|
||||||
|
g_return_val_if_fail (index >= 0 && index < screen->n_monitor_infos, -1);
|
||||||
|
|
||||||
meta_screen_ensure_xinerama_indices (screen);
|
meta_screen_ensure_xinerama_indices (screen);
|
||||||
|
|
||||||
return screen->monitor_infos[index].xinerama_index;
|
return screen->monitor_infos[index].xinerama_index;
|
||||||
|
@@ -177,6 +177,7 @@ enum {
|
|||||||
PROP_USER_TIME,
|
PROP_USER_TIME,
|
||||||
PROP_DEMANDS_ATTENTION,
|
PROP_DEMANDS_ATTENTION,
|
||||||
PROP_URGENT,
|
PROP_URGENT,
|
||||||
|
PROP_SKIP_TASKBAR,
|
||||||
PROP_MUTTER_HINTS,
|
PROP_MUTTER_HINTS,
|
||||||
PROP_APPEARS_FOCUSED,
|
PROP_APPEARS_FOCUSED,
|
||||||
PROP_RESIZEABLE,
|
PROP_RESIZEABLE,
|
||||||
@@ -313,6 +314,9 @@ meta_window_get_property(GObject *object,
|
|||||||
case PROP_URGENT:
|
case PROP_URGENT:
|
||||||
g_value_set_boolean (value, win->wm_hints_urgent);
|
g_value_set_boolean (value, win->wm_hints_urgent);
|
||||||
break;
|
break;
|
||||||
|
case PROP_SKIP_TASKBAR:
|
||||||
|
g_value_set_boolean (value, win->skip_taskbar);
|
||||||
|
break;
|
||||||
case PROP_MUTTER_HINTS:
|
case PROP_MUTTER_HINTS:
|
||||||
g_value_set_string (value, win->mutter_hints);
|
g_value_set_string (value, win->mutter_hints);
|
||||||
break;
|
break;
|
||||||
@@ -473,6 +477,14 @@ meta_window_class_init (MetaWindowClass *klass)
|
|||||||
FALSE,
|
FALSE,
|
||||||
G_PARAM_READABLE));
|
G_PARAM_READABLE));
|
||||||
|
|
||||||
|
g_object_class_install_property (object_class,
|
||||||
|
PROP_SKIP_TASKBAR,
|
||||||
|
g_param_spec_boolean ("skip-taskbar",
|
||||||
|
"Skip taskbar",
|
||||||
|
"Whether the skip-taskbar flag of WM_HINTS is set",
|
||||||
|
FALSE,
|
||||||
|
G_PARAM_READABLE));
|
||||||
|
|
||||||
g_object_class_install_property (object_class,
|
g_object_class_install_property (object_class,
|
||||||
PROP_MUTTER_HINTS,
|
PROP_MUTTER_HINTS,
|
||||||
g_param_spec_string ("mutter-hints",
|
g_param_spec_string ("mutter-hints",
|
||||||
@@ -2228,6 +2240,8 @@ set_net_wm_state (MetaWindow *window)
|
|||||||
meta_error_trap_pop (window->display);
|
meta_error_trap_pop (window->display);
|
||||||
|
|
||||||
if (window->fullscreen)
|
if (window->fullscreen)
|
||||||
|
{
|
||||||
|
if (window->fullscreen_monitors[0] >= 0)
|
||||||
{
|
{
|
||||||
data[0] = meta_screen_monitor_index_to_xinerama_index (window->screen,
|
data[0] = meta_screen_monitor_index_to_xinerama_index (window->screen,
|
||||||
window->fullscreen_monitors[0]);
|
window->fullscreen_monitors[0]);
|
||||||
@@ -2247,6 +2261,16 @@ set_net_wm_state (MetaWindow *window)
|
|||||||
(guchar*) data, 4);
|
(guchar*) data, 4);
|
||||||
meta_error_trap_pop (window->display);
|
meta_error_trap_pop (window->display);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
meta_verbose ("Clearing _NET_WM_FULLSCREEN_MONITORS\n");
|
||||||
|
meta_error_trap_push (window->display);
|
||||||
|
XDeleteProperty (window->display->xdisplay,
|
||||||
|
window->xwindow,
|
||||||
|
window->display->atom__NET_WM_FULLSCREEN_MONITORS);
|
||||||
|
meta_error_trap_pop (window->display);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -8029,9 +8053,9 @@ meta_window_update_input_region_x11 (MetaWindow *window)
|
|||||||
if (n_rects > 1 ||
|
if (n_rects > 1 ||
|
||||||
(n_rects == 1 &&
|
(n_rects == 1 &&
|
||||||
(rects[0].x != x_bounding ||
|
(rects[0].x != x_bounding ||
|
||||||
rects[1].y != y_bounding ||
|
rects[0].y != y_bounding ||
|
||||||
rects[2].width != w_bounding ||
|
rects[0].width != w_bounding ||
|
||||||
rects[3].height != h_bounding)))
|
rects[0].height != h_bounding)))
|
||||||
region = region_create_from_x_rectangles (rects, n_rects);
|
region = region_create_from_x_rectangles (rects, n_rects);
|
||||||
|
|
||||||
XFree (rects);
|
XFree (rects);
|
||||||
@@ -8672,6 +8696,7 @@ recalc_window_features (MetaWindow *window)
|
|||||||
gboolean old_has_resize_func;
|
gboolean old_has_resize_func;
|
||||||
gboolean old_has_shade_func;
|
gboolean old_has_shade_func;
|
||||||
gboolean old_always_sticky;
|
gboolean old_always_sticky;
|
||||||
|
gboolean old_skip_taskbar;
|
||||||
|
|
||||||
old_has_close_func = window->has_close_func;
|
old_has_close_func = window->has_close_func;
|
||||||
old_has_minimize_func = window->has_minimize_func;
|
old_has_minimize_func = window->has_minimize_func;
|
||||||
@@ -8679,6 +8704,7 @@ recalc_window_features (MetaWindow *window)
|
|||||||
old_has_resize_func = window->has_resize_func;
|
old_has_resize_func = window->has_resize_func;
|
||||||
old_has_shade_func = window->has_shade_func;
|
old_has_shade_func = window->has_shade_func;
|
||||||
old_always_sticky = window->always_sticky;
|
old_always_sticky = window->always_sticky;
|
||||||
|
old_skip_taskbar = window->skip_taskbar;
|
||||||
|
|
||||||
/* Use MWM hints initially */
|
/* Use MWM hints initially */
|
||||||
if (window->client_type == META_WINDOW_CLIENT_TYPE_X11)
|
if (window->client_type == META_WINDOW_CLIENT_TYPE_X11)
|
||||||
@@ -8873,6 +8899,9 @@ recalc_window_features (MetaWindow *window)
|
|||||||
window->skip_taskbar,
|
window->skip_taskbar,
|
||||||
window->skip_pager);
|
window->skip_pager);
|
||||||
|
|
||||||
|
if (old_skip_taskbar != window->skip_taskbar)
|
||||||
|
g_object_notify (G_OBJECT (window), "skip-taskbar");
|
||||||
|
|
||||||
/* FIXME:
|
/* FIXME:
|
||||||
* Lame workaround for recalc_window_features
|
* Lame workaround for recalc_window_features
|
||||||
* being used overzealously. The fix is to
|
* being used overzealously. The fix is to
|
||||||
|
Reference in New Issue
Block a user