[gnome-desktop] gnome-rr-labeler: Use GDK to get work area
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-desktop] gnome-rr-labeler: Use GDK to get work area
- Date: Fri, 6 Jan 2012 12:45:14 +0000 (UTC)
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]