Author: baggins                      Date: Thu Mar  3 12:47:02 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- rel 7
- work around menu position not being updated after plugin movement by providing
  our menu position hook

---- Files affected:
packages/xfce4-places-plugin:
   xfce4-places-plugin.spec (1.15 -> 1.16) , xfce4-places-plugin-position.patch 
(NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/xfce4-places-plugin/xfce4-places-plugin.spec
diff -u packages/xfce4-places-plugin/xfce4-places-plugin.spec:1.15 
packages/xfce4-places-plugin/xfce4-places-plugin.spec:1.16
--- packages/xfce4-places-plugin/xfce4-places-plugin.spec:1.15  Tue Feb 22 
08:11:05 2011
+++ packages/xfce4-places-plugin/xfce4-places-plugin.spec       Thu Mar  3 
13:46:57 2011
@@ -3,7 +3,7 @@
 Summary(pl.UTF-8):     Wtyczka places dla panelu Xfce
 Name:          xfce4-places-plugin
 Version:       1.2.0
-Release:       6
+Release:       7
 License:       GPL v2
 Group:         X11/Applications
 Source0:       
http://archive.xfce.org/src/panel-plugins/xfce4-places-plugin/1.2/%{name}-%{version}.tar.bz2
@@ -11,6 +11,7 @@
 Patch0:                port-to-exo-1.patch
 Patch1:                %{name}-ui.patch
 Patch2:                %{name}-gio.patch
+Patch3:                %{name}-position.patch
 URL:           
http://goodies.xfce.org/projects/panel-plugins/xfce4-places-plugin
 BuildRequires: Thunar-devel >= 1.2.0
 BuildRequires: autoconf
@@ -56,6 +57,7 @@
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
+%patch3 -p1
 
 %build
 %{__libtoolize}
@@ -93,6 +95,11 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.16  2011/03/03 12:46:57  baggins
+- rel 7
+- work around menu position not being updated after plugin movement by 
providing
+  our menu position hook
+
 Revision 1.15  2011/02/22 07:11:05  baggins
 - rel 6
 

================================================================
Index: packages/xfce4-places-plugin/xfce4-places-plugin-position.patch
diff -u /dev/null 
packages/xfce4-places-plugin/xfce4-places-plugin-position.patch:1.1
--- /dev/null   Thu Mar  3 13:47:02 2011
+++ packages/xfce4-places-plugin/xfce4-places-plugin-position.patch     Thu Mar 
 3 13:46:57 2011
@@ -0,0 +1,69 @@
+diff -ur xfce4-places-plugin-1.2.0/panel-plugin/view.c 
xfce4-places-plugin-1.2.0-position/panel-plugin/view.c
+--- xfce4-places-plugin-1.2.0/panel-plugin/view.c      2011-03-03 
13:43:31.938573607 +0100
++++ xfce4-places-plugin-1.2.0-position/panel-plugin/view.c     2011-03-03 
13:42:28.099573608 +0100
+@@ -734,6 +734,55 @@
+ }
+ 
+ static void
++pview_position_menu (GtkMenu *menu,
++                     gint *x,
++                     gint *y,
++                     gboolean *push_in,
++                     PlacesView *view)
++{
++  GtkWidget *button;
++  GtkRequisition requisition;
++  GtkOrientation orientation;
++
++  button = view->button;
++  orientation = xfce_panel_plugin_get_orientation (view->plugin);
++  gtk_widget_size_request (GTK_WIDGET (menu), &requisition);
++  gdk_window_get_origin (GTK_WIDGET (view->plugin)->window, x, y);
++
++  switch (orientation)
++    {
++    case GTK_ORIENTATION_HORIZONTAL:
++      if (*y + button->allocation.height + requisition.height > 
gdk_screen_height ())
++        /* Show menu above */
++        *y -= requisition.height;
++      else
++        /* Show menu below */
++        *y += button->allocation.height;
++
++      if (*x + requisition.width > gdk_screen_width ())
++        /* Adjust horizontal position */
++        *x = gdk_screen_width () - requisition.width;
++      break;
++
++    case GTK_ORIENTATION_VERTICAL:
++      if (*x + button->allocation.width + requisition.width > 
gdk_screen_width ())
++        /* Show menu on the right */
++        *x -= requisition.width;
++      else
++        /* Show menu on the left */
++        *x += button->allocation.width;
++
++      if (*y + requisition.height > gdk_screen_height ())
++        /* Adjust vertical position */
++        *y = gdk_screen_height () - requisition.height;
++      break;
++
++    default:
++      break;
++    }
++}
++
++static void
+ pview_open_menu(PlacesView *pd)
+ {
+     /* check if menu is needed, or it needs an update */
+@@ -745,8 +794,7 @@
+ 
+     /* popup menu */
+     gtk_menu_popup (GTK_MENU (pd->menu), NULL, NULL,
+-                    xfce_panel_plugin_position_menu,
+-                    pd->plugin, 0,
++                    (GtkMenuPositionFunc)pview_position_menu, pd, 0,
+                     gtk_get_current_event_time ());
+     
+     /* menu timeout to poll for model changes */
================================================================

---- CVS-web:
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/xfce4-places-plugin/xfce4-places-plugin.spec?r1=1.15&r2=1.16&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to