SOURCES: gtk+2-menu-mac.patch - updated

patrys patrys at pld-linux.org
Sat Nov 4 23:59:22 CET 2006


Author: patrys                       Date: Sat Nov  4 22:59:22 2006 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- updated

---- Files affected:
SOURCES:
   gtk+2-menu-mac.patch (1.1 -> 1.2) 

---- Diffs:

================================================================
Index: SOURCES/gtk+2-menu-mac.patch
diff -u SOURCES/gtk+2-menu-mac.patch:1.1 SOURCES/gtk+2-menu-mac.patch:1.2
--- SOURCES/gtk+2-menu-mac.patch:1.1	Wed Nov  1 21:09:17 2006
+++ SOURCES/gtk+2-menu-mac.patch	Sat Nov  4 23:59:17 2006
@@ -1,6 +1,6 @@
 --- gtk/gtkmenubar.c.old	2006-07-03 08:25:06.000000000 +0800
-+++ gtk/gtkmenubar.c	2006-10-14 02:10:26.000000000 +0800
-@@ -38,6 +38,17 @@
++++ gtk/gtkmenubar.c	2006-11-04 23:18:50.000000000 +0800
+@@ -38,6 +38,18 @@
  #include "gtkwindow.h"
  #include "gtkprivate.h"
  #include "gtkalias.h"
@@ -13,12 +13,13 @@
 +#include "gtklabel.h"
 +#include <stdlib.h>
 +#include <string.h>
++#include <unistd.h>
 +#include <X11/Xatom.h>
 +#include <X11/Xlib.h>
  
  
  #define BORDER_SPACING  0
-@@ -55,6 +66,8 @@
+@@ -55,6 +67,8 @@
  {
    GtkPackDirection pack_direction;
    GtkPackDirection child_pack_direction;
@@ -27,7 +28,7 @@
  };
  
  #define GTK_MENU_BAR_GET_PRIVATE(o)  \
-@@ -89,9 +102,129 @@
+@@ -89,9 +103,154 @@
  
  G_DEFINE_TYPE (GtkMenuBar, gtk_menu_bar, GTK_TYPE_MENU_SHELL)
  
@@ -44,11 +45,12 @@
 +  if (no_mac_set) return no_mac;
 +  env = getenv("GTK_MENUBAR_NO_MAC");
 +  if (env == NULL)
-+    env = "acroread gnome-panel";
++    env = "acroread gnome-macmenu-applet gnome-panel xfce4-macmenu-plugin xfce4-panel";
 +  if (strcmp(env, "1") == 0)
 +    no_mac = TRUE;
 +  else
 +  {
++    // check for GTK_MENUBAR_NO_MAC
 +    gchar** no_mac_prgs = g_strsplit(env, " ", 0);
 +    gchar** p = no_mac_prgs;
 +    gchar* prg = g_get_prgname();
@@ -63,6 +65,29 @@
 +    }
 +    g_strfreev(no_mac_prgs);
 +  }
++  if (! no_mac)
++  {
++    // check for mozplugger
++    char scmd[255];
++    char buffer[1024];
++    sprintf(scmd, "ps -o comm= -p `ps -o ppid= -p %d`", getpid());
++    FILE* f = popen(scmd, "r");
++    int len = fread(buffer, 1, 1023, f);
++    if (len > 0)
++    {
++      char* p;
++      buffer[len] = 0;
++      if ((p = index(buffer, '\n')) != NULL)
++        *p = 0;
++      if (strcmp(buffer, "mozplugger-help") == 0)
++        no_mac = TRUE;
++    }
++    else
++    {
++      fprintf(stderr, "failed to check for mozplugger by \"%s\"\n", scmd);
++    }
++    pclose(f);
++  }
 +  no_mac_set = TRUE;
 +  return no_mac;
 +}
@@ -104,6 +129,7 @@
 +    {
 +      Atom typehints[2];
 +      GdkGeometry geometry;
++      GtkRcStyle *mbarstyle;
 +      // Setup menubar's original top-level window
 +      priv->orig_toplevel_win
 +        = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (menubar)));
@@ -157,7 +183,7 @@
  }
  
  static void
-@@ -114,6 +247,7 @@
+@@ -114,6 +273,7 @@
    widget_class->size_allocate = gtk_menu_bar_size_allocate;
    widget_class->expose_event = gtk_menu_bar_expose;
    widget_class->hierarchy_changed = gtk_menu_bar_hierarchy_changed;
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/SOURCES/gtk+2-menu-mac.patch?r1=1.1&r2=1.2&f=u



More information about the pld-cvs-commit mailing list