Compare commits
	
		
			1 Commits
		
	
	
		
			wip/fmuell
			...
			wip/muktup
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					faf1dc08ae | 
@@ -141,6 +141,7 @@ item(_NET_WM_STATE_FULLSCREEN)
 | 
				
			|||||||
item(_NET_WM_PING)
 | 
					item(_NET_WM_PING)
 | 
				
			||||||
item(_NET_WM_PID)
 | 
					item(_NET_WM_PID)
 | 
				
			||||||
item(_NET_WORKAREA)
 | 
					item(_NET_WORKAREA)
 | 
				
			||||||
 | 
					item(_NET_WORKAREAS)
 | 
				
			||||||
item(_NET_SHOWING_DESKTOP)
 | 
					item(_NET_SHOWING_DESKTOP)
 | 
				
			||||||
item(_NET_DESKTOP_LAYOUT)
 | 
					item(_NET_DESKTOP_LAYOUT)
 | 
				
			||||||
item(_NET_DESKTOP_NAMES)
 | 
					item(_NET_DESKTOP_NAMES)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -904,6 +904,57 @@ set_workspace_names (MetaX11Display *x11_display)
 | 
				
			|||||||
  g_string_free (flattened, TRUE);
 | 
					  g_string_free (flattened, TRUE);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void
 | 
				
			||||||
 | 
					set_workspace_work_area_hint (MetaWorkspace  *workspace,
 | 
				
			||||||
 | 
					                              MetaX11Display *x11_display)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  MetaMonitorManager *monitor_manager;
 | 
				
			||||||
 | 
					  GList *logical_monitors;
 | 
				
			||||||
 | 
					  GList *l;
 | 
				
			||||||
 | 
					  int num_monitors;
 | 
				
			||||||
 | 
					  unsigned long *data;
 | 
				
			||||||
 | 
					  unsigned long *tmp;
 | 
				
			||||||
 | 
					  gchar *workarea_name;
 | 
				
			||||||
 | 
					  Atom workarea_atom;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  monitor_manager = meta_backend_get_monitor_manager (meta_get_backend ());
 | 
				
			||||||
 | 
					  logical_monitors = meta_monitor_manager_get_logical_monitors (monitor_manager);
 | 
				
			||||||
 | 
					  num_monitors = meta_monitor_manager_get_num_logical_monitors (monitor_manager);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  data = g_new (unsigned long, num_monitors * 4);
 | 
				
			||||||
 | 
					  tmp = data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for (l = logical_monitors; l; l = l->next)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      MetaRectangle area;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      meta_workspace_get_work_area_for_logical_monitor (workspace, l->data, &area);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      tmp[0] = area.x;
 | 
				
			||||||
 | 
					      tmp[1] = area.y;
 | 
				
			||||||
 | 
					      tmp[2] = area.width;
 | 
				
			||||||
 | 
					      tmp[3] = area.height;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      tmp += 4;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  workarea_name = g_strdup_printf ("_NET_WORKAREAS_D%d",
 | 
				
			||||||
 | 
					                                   meta_workspace_index (workspace));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  workarea_atom = XInternAtom (x11_display->xdisplay, workarea_name, False);
 | 
				
			||||||
 | 
					  g_free (workarea_name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  meta_x11_error_trap_push (x11_display);
 | 
				
			||||||
 | 
					  XChangeProperty (x11_display->xdisplay,
 | 
				
			||||||
 | 
					                   x11_display->xroot,
 | 
				
			||||||
 | 
					                   workarea_atom,
 | 
				
			||||||
 | 
					                   XA_CARDINAL, 32, PropModeReplace,
 | 
				
			||||||
 | 
					                   (guchar*) data, num_monitors * 4);
 | 
				
			||||||
 | 
					  meta_x11_error_trap_pop (x11_display);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  g_free (data);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
set_work_area_hint (MetaDisplay    *display,
 | 
					set_work_area_hint (MetaDisplay    *display,
 | 
				
			||||||
                    MetaX11Display *x11_display)
 | 
					                    MetaX11Display *x11_display)
 | 
				
			||||||
@@ -923,6 +974,8 @@ set_work_area_hint (MetaDisplay    *display,
 | 
				
			|||||||
      MetaWorkspace *workspace = l->data;
 | 
					      MetaWorkspace *workspace = l->data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      meta_workspace_get_work_area_all_monitors (workspace, &area);
 | 
					      meta_workspace_get_work_area_all_monitors (workspace, &area);
 | 
				
			||||||
 | 
					      set_workspace_work_area_hint (workspace, x11_display);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      tmp[0] = area.x;
 | 
					      tmp[0] = area.x;
 | 
				
			||||||
      tmp[1] = area.y;
 | 
					      tmp[1] = area.y;
 | 
				
			||||||
      tmp[2] = area.width;
 | 
					      tmp[2] = area.width;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user