From c2b901dfe9cd0cc9392401feb780e8918d20bbd8 Mon Sep 17 00:00:00 2001 From: James Newton <redshodan@gmail.com> Date: Fri, 16 Nov 2007 23:11:35 +0000 Subject: [PATCH] Adjusted the menu code in an attempt to make it work better on leopard. Removed the idle_add wrapper for on_quit and moved the idle_add wrapping into the sync-menu code instead. --- TODO.osx | 6 ++-- data/nibs/Gajim.nib/info.nib | 9 +++-- data/nibs/Gajim.nib/keyedobjects.nib | Bin 6413 -> 7184 bytes launch.sh | 4 +++ src/gajim.py | 2 +- src/osx/syncmenu/Makefile.am | 4 +-- src/osx/syncmenu/sync-menu.c | 10 ++++-- src/roster_window.py | 49 +++++++++++++-------------- 8 files changed, 46 insertions(+), 38 deletions(-) diff --git a/TODO.osx b/TODO.osx index 7216d3aea2..b5c332299d 100644 --- a/TODO.osx +++ b/TODO.osx @@ -23,12 +23,10 @@ The bits that dont work - fix user session management -integrate the Gajim and gajim-remote scripts with autoconf and add GTK framework detection --Pass icons to OS/X menu --set the LSEnvironment in Info.plist for gtk paths instead of hard coding in - gajim.py --Maybe setup the pasteboard services for an OS/X alternative to the +-Maybe setup the pasteboard services for an OS/X alternative to the gajim_remote -CFBundleDocumentTypes.NSDocument +-zeroconf has a parsing problem with the MDNS result. Native GTK bugs diff --git a/data/nibs/Gajim.nib/info.nib b/data/nibs/Gajim.nib/info.nib index 90bdefffb9..9cb6b534dc 100644 --- a/data/nibs/Gajim.nib/info.nib +++ b/data/nibs/Gajim.nib/info.nib @@ -3,19 +3,22 @@ <plist version="1.0"> <dict> <key>IBDocumentLocation</key> - <string>69 10 356 240 0 0 1280 832 </string> + <string>82 255 356 240 0 0 1280 832 </string> <key>IBEditorPositions</key> <dict> <key>29</key> - <string>245 312 185 44 0 0 1280 832 </string> + <string>476 296 342 44 0 0 1280 832 </string> </dict> <key>IBFramework Version</key> <string>446.1</string> + <key>IBOldestOS</key> + <integer>4</integer> <key>IBOpenObjects</key> <array> + <integer>289</integer> <integer>29</integer> </array> <key>IBSystem Version</key> - <string>8R218</string> + <string>8S165</string> </dict> </plist> diff --git a/data/nibs/Gajim.nib/keyedobjects.nib b/data/nibs/Gajim.nib/keyedobjects.nib index bc313d484ed50e29c78da3564417e80d2ac9b29b..f13f467bfe6fadf16da4c85320890c42da20822f 100644 GIT binary patch literal 7184 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 literal 6413 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 Q5AWFQ?YH(e{#{S`7pMXXC;$Ke diff --git a/launch.sh b/launch.sh index 1b23c5c4de..7a3f8b5f62 100755 --- a/launch.sh +++ b/launch.sh @@ -4,6 +4,10 @@ OS=`uname -s` if [ "x${OS}" == "xDarwin" ]; then export RESOURCEPATH="${BASE}/dist/Gajim.app/Contents/Resources" + GTK_DIR="/Library/Frameworks/GTK+.framework/Versions/Current" + export PATH="${GTK_DIR}/bin:$PATH" + export PYTHONPATH="${GTK_DIR}/lib/python2.5/site-packages:${GTK_DIR}/lib/python2.5/site-packages/gtk-2.0:${PYTHONPATH}" + unset GTK_DIR fi cd ${BASE}/src diff --git a/src/gajim.py b/src/gajim.py index 6954e764ff..99c9e75e4e 100755 --- a/src/gajim.py +++ b/src/gajim.py @@ -297,7 +297,7 @@ def pid_alive(): return False elif sys.platform == 'darwin': from osx import checkPID - return checkPID(pid, 'gajim') + return checkPID(pid, 'Gajim.bin') try: if not os.path.exists('/proc'): return True # no /proc, assume Gajim is running diff --git a/src/osx/syncmenu/Makefile.am b/src/osx/syncmenu/Makefile.am index 7974765590..d8ff94861f 100644 --- a/src/osx/syncmenu/Makefile.am +++ b/src/osx/syncmenu/Makefile.am @@ -10,8 +10,8 @@ if BUILD_COCOA syncmenulib_LTLIBRARIES = syncmenu.la syncmenulibdir = $(libdir)/gajim syncmenu_la_SOURCES = sync-menu.c pysyncmenu.c -syncmenu_la_LDFLAGS = -module -avoid-version $(GTKLDFLAGS) -syncmenu_la_CFLAGS = $(GTKCFLAGS) -Wall -g $(INCLUDES) +syncmenu_la_LDFLAGS = -module -avoid-version -Xcompiler -isysroot -Xcompiler /Developer/SDKs/MacOSX10.4u.sdk -Xcompiler -arch -Xcompiler ppc -Xcompiler -arch -Xcompiler i386 $(GTKLDFLAGS) +syncmenu_la_CFLAGS = -Xcompiler -isysroot -Xcompiler /Developer/SDKs/MacOSX10.4u.sdk -Xcompiler -arch -Xcompiler ppc -Xcompiler -arch -Xcompiler i386 $(GTKCFLAGS) -Wall -g $(INCLUDES) endif DISTCLEANFILES = diff --git a/src/osx/syncmenu/sync-menu.c b/src/osx/syncmenu/sync-menu.c index dde97d7f1a..f29685c294 100644 --- a/src/osx/syncmenu/sync-menu.c +++ b/src/osx/syncmenu/sync-menu.c @@ -477,11 +477,16 @@ carbon_menu_item_connect (GtkWidget *menu_item, return carbon_item; } - /* * carbon event handler */ +gboolean menuitem_activate_wrapper(gpointer data) +{ + gtk_menu_item_activate((GtkMenuItem*)data); + return FALSE; +} + static OSStatus menu_event_handler_func (EventHandlerCallRef event_handler_call_ref, EventRef event_ref, @@ -526,7 +531,8 @@ menu_event_handler_func (EventHandlerCallRef event_handler_call_ref, sizeof (widget), 0, &widget); if (err == noErr && widget) { - gtk_menu_item_activate (GTK_MENU_ITEM (widget)); + g_idle_add(menuitem_activate_wrapper, + (gpointer)GTK_MENU_ITEM (widget)); return noErr; } } diff --git a/src/roster_window.py b/src/roster_window.py index eabd8f1fba..7eadcf4011 100644 --- a/src/roster_window.py +++ b/src/roster_window.py @@ -4191,9 +4191,6 @@ class RosterWindow: gtk.main_quit() def on_quit_menuitem_activate(self, widget): - gobject.idle_add(self.on_quit_menuitem_activate_real, widget) - - def on_quit_menuitem_activate_real(self, widget): accounts = gajim.connections.keys() get_msg = False for acct in accounts: @@ -5187,47 +5184,47 @@ class RosterWindow: def setup_for_osx(self): # Massage the GTK menu so it will match up to the OS/X nib style menu # when passed to sync-menu and merged - main_menu = self.xml.get_widget('menubar') - app_item = gtk.MenuItem('Gajim') + main_menu = self.xml.get_widget("menubar") + app_item = gtk.MenuItem("Gajim") main_menu.insert(app_item, 0) - win_item = gtk.MenuItem('Window') + win_item = gtk.MenuItem("Window") main_menu.insert(win_item, 4) - actions_menu = self.xml.get_widget('actions_menu_menu') - quit_item = self.xml.get_widget('quit_menuitem') + actions_menu = self.xml.get_widget("actions_menu_menu") + quit_item = self.xml.get_widget("quit_menuitem") actions_menu.remove(quit_item) - actions_menu.remove(self.xml.get_widget('separator1')) - edit_menu = self.xml.get_widget('edit_menu_menu') - edit_menu.remove(self.xml.get_widget('preferences_menuitem')) - edit_menu.remove(self.xml.get_widget('separator2')) - help_menu = self.xml.get_widget('help_menu_menu') - about_item = self.xml.get_widget('about_menuitem') + actions_menu.remove(self.xml.get_widget("separator1")) + edit_menu = self.xml.get_widget("edit_menu_menu") + #edit_menu.remove(self.xml.get_widget("preferences_menuitem")) + edit_menu.remove(self.xml.get_widget("separator2")) + help_menu = self.xml.get_widget("help_menu_menu") + about_item = self.xml.get_widget("about_menuitem") help_menu.remove(about_item) # Build up App menu app_menu = gtk.Menu() app_item.set_submenu(app_menu) app_menu.append(about_item) - app_menu.append(gtk.MenuItem('__SKIP__')) - prefs_item = gtk.MenuItem('Preferences...') + app_menu.append(gtk.MenuItem("__SKIP__")) + prefs_item = gtk.MenuItem("Preferences...") prefs_item.connect("activate", self.on_preferences_menuitem_activate) accels = gtk.AccelGroup() - self.xml.get_widget('roster_window').add_accel_group(accels) - prefs_item.add_accelerator('activate', accels, ord(','), + self.xml.get_widget("roster_window").add_accel_group(accels) + prefs_item.add_accelerator("activate", accels, ord(','), gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE) app_menu.append(prefs_item) - app_menu.append(gtk.MenuItem('__SKIP__')) - app_menu.append(gtk.MenuItem('__SKIP__')) - app_menu.append(gtk.MenuItem('__SKIP__')) - app_menu.append(gtk.MenuItem('__SKIP__')) - app_menu.append(gtk.MenuItem('__SKIP__')) - app_menu.append(gtk.MenuItem('__SKIP__')) - app_menu.append(gtk.MenuItem('__SKIP__')) + app_menu.append(gtk.MenuItem("__SKIP__")) + app_menu.append(gtk.MenuItem("__SKIP__")) + app_menu.append(gtk.MenuItem("__SKIP__")) + app_menu.append(gtk.MenuItem("__SKIP__")) + app_menu.append(gtk.MenuItem("__SKIP__")) + app_menu.append(gtk.MenuItem("__SKIP__")) + app_menu.append(gtk.MenuItem("__SKIP__")) app_menu.append(quit_item) app_menu.show_all() # Do the merge baby! syncmenu.takeover_menu(main_menu) self.make_menu(force = True) # Hide the GTK menubar itself and let the OS/X menubar do its thing - self.xml.get_widget('menubar').hide() + #self.xml.get_widget("menubar").hide() return def __init__(self): -- GitLab