Compare commits
	
		
			9 Commits
		
	
	
		
			gnome-3-24
			...
			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
 | 
			
		||||
======
 | 
			
		||||
* 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_minor_version], [10])
 | 
			
		||||
m4_define([mutter_micro_version], [1])
 | 
			
		||||
m4_define([mutter_micro_version], [4])
 | 
			
		||||
 | 
			
		||||
m4_define([mutter_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);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  if (priv->unobscured_region)
 | 
			
		||||
    cairo_region_intersect_rectangle (priv->unobscured_region, &bounds);
 | 
			
		||||
  if (priv->unobscured_region && !clutter_actor_has_mapped_clones (actor))
 | 
			
		||||
    {
 | 
			
		||||
      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.y = bounds.y;
 | 
			
		||||
@@ -1438,6 +1442,12 @@ meta_window_actor_destroy (MetaWindowActor *self)
 | 
			
		||||
  window_type = meta_window_get_window_type (window);
 | 
			
		||||
  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
 | 
			
		||||
   * unmap events etc fail
 | 
			
		||||
 
 | 
			
		||||
@@ -537,7 +537,7 @@ make_watch (MetaIdleMonitor           *monitor,
 | 
			
		||||
          watch->timeout_source = source;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
  else if (monitor->user_active_alarm != None)
 | 
			
		||||
    {
 | 
			
		||||
      if (timeout_msec != 0)
 | 
			
		||||
        {
 | 
			
		||||
 
 | 
			
		||||
@@ -290,7 +290,7 @@ make_logical_config (MetaMonitorManager *manager)
 | 
			
		||||
 | 
			
		||||
      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,
 | 
			
		||||
                                    &info->rect))
 | 
			
		||||
            {
 | 
			
		||||
 
 | 
			
		||||
@@ -391,6 +391,8 @@ int
 | 
			
		||||
meta_screen_monitor_index_to_xinerama_index (MetaScreen *screen,
 | 
			
		||||
                                             int         index)
 | 
			
		||||
{
 | 
			
		||||
  g_return_val_if_fail (index >= 0 && index < screen->n_monitor_infos, -1);
 | 
			
		||||
 | 
			
		||||
  meta_screen_ensure_xinerama_indices (screen);
 | 
			
		||||
 | 
			
		||||
  return screen->monitor_infos[index].xinerama_index;
 | 
			
		||||
 
 | 
			
		||||
@@ -177,6 +177,7 @@ enum {
 | 
			
		||||
  PROP_USER_TIME,
 | 
			
		||||
  PROP_DEMANDS_ATTENTION,
 | 
			
		||||
  PROP_URGENT,
 | 
			
		||||
  PROP_SKIP_TASKBAR,
 | 
			
		||||
  PROP_MUTTER_HINTS,
 | 
			
		||||
  PROP_APPEARS_FOCUSED,
 | 
			
		||||
  PROP_RESIZEABLE,
 | 
			
		||||
@@ -313,6 +314,9 @@ meta_window_get_property(GObject         *object,
 | 
			
		||||
    case PROP_URGENT:
 | 
			
		||||
      g_value_set_boolean (value, win->wm_hints_urgent);
 | 
			
		||||
      break;
 | 
			
		||||
    case PROP_SKIP_TASKBAR:
 | 
			
		||||
      g_value_set_boolean (value, win->skip_taskbar);
 | 
			
		||||
      break;
 | 
			
		||||
    case PROP_MUTTER_HINTS:
 | 
			
		||||
      g_value_set_string (value, win->mutter_hints);
 | 
			
		||||
      break;
 | 
			
		||||
@@ -473,6 +477,14 @@ meta_window_class_init (MetaWindowClass *klass)
 | 
			
		||||
                                                         FALSE,
 | 
			
		||||
                                                         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,
 | 
			
		||||
                                   PROP_MUTTER_HINTS,
 | 
			
		||||
                                   g_param_spec_string ("mutter-hints",
 | 
			
		||||
@@ -2229,23 +2241,35 @@ set_net_wm_state (MetaWindow *window)
 | 
			
		||||
 | 
			
		||||
  if (window->fullscreen)
 | 
			
		||||
    {
 | 
			
		||||
      data[0] = meta_screen_monitor_index_to_xinerama_index (window->screen,
 | 
			
		||||
                                                             window->fullscreen_monitors[0]);
 | 
			
		||||
      data[1] = meta_screen_monitor_index_to_xinerama_index (window->screen,
 | 
			
		||||
                                                             window->fullscreen_monitors[1]);
 | 
			
		||||
      data[2] = meta_screen_monitor_index_to_xinerama_index (window->screen,
 | 
			
		||||
                                                             window->fullscreen_monitors[2]);
 | 
			
		||||
      data[3] = meta_screen_monitor_index_to_xinerama_index (window->screen,
 | 
			
		||||
                                                             window->fullscreen_monitors[3]);
 | 
			
		||||
      if (window->fullscreen_monitors[0] >= 0)
 | 
			
		||||
        {
 | 
			
		||||
          data[0] = meta_screen_monitor_index_to_xinerama_index (window->screen,
 | 
			
		||||
                                                                 window->fullscreen_monitors[0]);
 | 
			
		||||
          data[1] = meta_screen_monitor_index_to_xinerama_index (window->screen,
 | 
			
		||||
                                                                 window->fullscreen_monitors[1]);
 | 
			
		||||
          data[2] = meta_screen_monitor_index_to_xinerama_index (window->screen,
 | 
			
		||||
                                                                 window->fullscreen_monitors[2]);
 | 
			
		||||
          data[3] = meta_screen_monitor_index_to_xinerama_index (window->screen,
 | 
			
		||||
                                                                 window->fullscreen_monitors[3]);
 | 
			
		||||
 | 
			
		||||
      meta_verbose ("Setting _NET_WM_FULLSCREEN_MONITORS\n");
 | 
			
		||||
      meta_error_trap_push (window->display);
 | 
			
		||||
      XChangeProperty (window->display->xdisplay,
 | 
			
		||||
                       window->xwindow,
 | 
			
		||||
                       window->display->atom__NET_WM_FULLSCREEN_MONITORS,
 | 
			
		||||
                       XA_CARDINAL, 32, PropModeReplace,
 | 
			
		||||
                       (guchar*) data, 4);
 | 
			
		||||
      meta_error_trap_pop (window->display);
 | 
			
		||||
          meta_verbose ("Setting _NET_WM_FULLSCREEN_MONITORS\n");
 | 
			
		||||
          meta_error_trap_push (window->display);
 | 
			
		||||
          XChangeProperty (window->display->xdisplay,
 | 
			
		||||
                           window->xwindow,
 | 
			
		||||
                           window->display->atom__NET_WM_FULLSCREEN_MONITORS,
 | 
			
		||||
                           XA_CARDINAL, 32, PropModeReplace,
 | 
			
		||||
                           (guchar*) data, 4);
 | 
			
		||||
          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 ||
 | 
			
		||||
              (n_rects == 1 &&
 | 
			
		||||
               (rects[0].x != x_bounding ||
 | 
			
		||||
                rects[1].y != y_bounding ||
 | 
			
		||||
                rects[2].width != w_bounding ||
 | 
			
		||||
                rects[3].height != h_bounding)))
 | 
			
		||||
                rects[0].y != y_bounding ||
 | 
			
		||||
                rects[0].width != w_bounding ||
 | 
			
		||||
                rects[0].height != h_bounding)))
 | 
			
		||||
            region = region_create_from_x_rectangles (rects, n_rects);
 | 
			
		||||
 | 
			
		||||
          XFree (rects);
 | 
			
		||||
@@ -8672,6 +8696,7 @@ recalc_window_features (MetaWindow *window)
 | 
			
		||||
  gboolean old_has_resize_func;
 | 
			
		||||
  gboolean old_has_shade_func;
 | 
			
		||||
  gboolean old_always_sticky;
 | 
			
		||||
  gboolean old_skip_taskbar;
 | 
			
		||||
 | 
			
		||||
  old_has_close_func = window->has_close_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_shade_func = window->has_shade_func;
 | 
			
		||||
  old_always_sticky = window->always_sticky;
 | 
			
		||||
  old_skip_taskbar = window->skip_taskbar;
 | 
			
		||||
 | 
			
		||||
  /* Use MWM hints initially */
 | 
			
		||||
  if (window->client_type == META_WINDOW_CLIENT_TYPE_X11)
 | 
			
		||||
@@ -8873,6 +8899,9 @@ recalc_window_features (MetaWindow *window)
 | 
			
		||||
              window->skip_taskbar,
 | 
			
		||||
              window->skip_pager);
 | 
			
		||||
 | 
			
		||||
  if (old_skip_taskbar != window->skip_taskbar)
 | 
			
		||||
    g_object_notify (G_OBJECT (window), "skip-taskbar");
 | 
			
		||||
 | 
			
		||||
  /* FIXME:
 | 
			
		||||
   * Lame workaround for recalc_window_features
 | 
			
		||||
   * being used overzealously. The fix is to
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user