[gnome-desktop] gnome-rr-labeler: Use GDK to get work area



commit a41581079a547cf2590d7ae25d1ed8cd2619c7e1
Author: Bastien Nocera <hadess hadess net>
Date:   Fri Jan 6 12:44:46 2012 +0000

    gnome-rr-labeler: Use GDK to get work area
    
    And make sure to use the correct monitor.

 configure.ac                        |    2 +-
 libgnome-desktop/gnome-rr-labeler.c |  101 +----------------------------------
 2 files changed, 2 insertions(+), 101 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index bcacc85..2a1ef76 100644
--- a/configure.ac
+++ b/configure.ac
@@ -111,7 +111,7 @@ dnl If you add a version number here, you *must* add an AC_SUBST line for
 dnl it too, or it will never make it into the spec file!
 
 GDK_PIXBUF_REQUIRED=2.21.3
-GTK_REQUIRED=3.0
+GTK_REQUIRED=3.3.6
 GLIB_REQUIRED=2.19.1
 XRANDR_REQUIRED=1.3
 GSETTINGS_DESKTOP_SCHEMAS_REQUIRED=0.1.4
diff --git a/libgnome-desktop/gnome-rr-labeler.c b/libgnome-desktop/gnome-rr-labeler.c
index ca10baf..be4b06a 100644
--- a/libgnome-desktop/gnome-rr-labeler.c
+++ b/libgnome-desktop/gnome-rr-labeler.c
@@ -62,105 +62,6 @@ G_DEFINE_TYPE (GnomeRRLabeler, gnome_rr_labeler, G_TYPE_OBJECT);
 static void gnome_rr_labeler_finalize (GObject *object);
 static void setup_from_config (GnomeRRLabeler *labeler);
 
-static int
-get_current_desktop (GdkScreen *screen)
-{
-        Display *display;
-        Window win;
-        Atom current_desktop, type;
-        int format;
-        unsigned long n_items, bytes_after;
-        unsigned char *data_return = NULL;
-        int workspace = 0;
-
-        display = GDK_DISPLAY_XDISPLAY (gdk_screen_get_display (screen));
-        win = XRootWindow (display, GDK_SCREEN_XNUMBER (screen));
-
-        current_desktop = XInternAtom (display, "_NET_CURRENT_DESKTOP", True);
-
-        XGetWindowProperty (display,
-                            win,
-                            current_desktop,
-                            0, G_MAXLONG,
-                            False, XA_CARDINAL,
-                            &type, &format, &n_items, &bytes_after,
-                            &data_return);
-
-        if (type == XA_CARDINAL && format == 32 && n_items > 0)
-                workspace = (int) data_return[0];
-        if (data_return)
-                XFree (data_return);
-
-        return workspace;
-}
-
-static gboolean
-get_work_area (GnomeRRLabeler *labeler,
-	       GdkRectangle   *rect)
-{
-	Atom            workarea;
-	Atom            type;
-	Window          win;
-	int             format;
-	gulong          num;
-	gulong          leftovers;
-	gulong          max_len = 4 * 32;
-	guchar         *ret_workarea;
-	long           *workareas;
-	int             result;
-	int             disp_screen;
-        int             desktop;
-	Display        *display;
-
-	display = GDK_DISPLAY_XDISPLAY (gdk_screen_get_display (labeler->priv->screen));
-	workarea = XInternAtom (display, "_NET_WORKAREA", True);
-
-	disp_screen = GDK_SCREEN_XNUMBER (labeler->priv->screen);
-
-	/* Defaults in case of error */
-	rect->x = 0;
-	rect->y = 0;
-	rect->width = gdk_screen_get_width (labeler->priv->screen);
-	rect->height = gdk_screen_get_height (labeler->priv->screen);
-
-	if (workarea == None)
-		return FALSE;
-
-	win = XRootWindow (display, disp_screen);
-	result = XGetWindowProperty (display,
-				     win,
-				     workarea,
-				     0,
-				     max_len,
-				     False,
-				     AnyPropertyType,
-				     &type,
-				     &format,
-				     &num,
-				     &leftovers,
-				     &ret_workarea);
-
-	if (result != Success
-	    || type == None
-	    || format == 0
-	    || leftovers
-	    || num % 4) {
-		return FALSE;
-	}
-
-        desktop = get_current_desktop (labeler->priv->screen);
-
-	workareas = (long *) ret_workarea;
-	rect->x = workareas[desktop * 4];
-	rect->y = workareas[desktop * 4 + 1];
-	rect->width = workareas[desktop * 4 + 2];
-	rect->height = workareas[desktop * 4 + 3];
-
-	XFree (ret_workarea);
-
-	return TRUE;
-}
-
 static GdkFilterReturn
 screen_xevent_filter (GdkXEvent      *xevent,
 		      GdkEvent       *event,
@@ -366,8 +267,8 @@ position_window (GnomeRRLabeler  *labeler,
 	GdkRectangle    monitor;
 	int             monitor_num;
 
-	get_work_area (labeler, &workarea);
 	monitor_num = gdk_screen_get_monitor_at_point (labeler->priv->screen, x, y);
+	gdk_screen_get_monitor_workarea (labeler->priv->screen, monitor_num, &workarea);
 	gdk_screen_get_monitor_geometry (labeler->priv->screen,
                                          monitor_num,
                                          &monitor);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]