summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO29
-rw-r--r--PKGBUILD34
-rw-r--r--fix-crash.patch167
-rw-r--r--fix-desktop-path.patch12
-rw-r--r--mate-menu.install11
-rw-r--r--optional-lsb_release.patch21
6 files changed, 274 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..bf163c50e81f
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,29 @@
+pkgbase = mate-menu
+ pkgdesc = Advanced menu for MATE Panel, a fork of MintMenu
+ pkgver = 5.6.5a
+ pkgrel = 1
+ url = https://bitbucket.org/ubuntu-mate/mate-menu
+ install = mate-menu.install
+ arch = any
+ license = GPL
+ makedepends = git
+ makedepends = python2-distutils-extra
+ makedepends = python2-setuptools
+ depends = mate-panel
+ depends = python2-configobj
+ depends = python2-gobject
+ depends = python2-pyinotify
+ depends = python2-xdg
+ depends = python2-xlib
+ depends = xdg-utils
+ source = mate-menu-5.6.5a::git+https://bitbucket.org/ubuntu-mate/mate-menu.git#tag=5.6.5a
+ source = fix-crash.patch
+ source = fix-desktop-path.patch
+ source = optional-lsb_release.patch
+ md5sums = SKIP
+ md5sums = 6b6623895d02b739d0d6fb4413f0b6ba
+ md5sums = 3aeb919106f0f6476b234e4ce6990a06
+ md5sums = 92c321a71c6f5ae61695d61eb5f89b50
+
+pkgname = mate-menu
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..c86f93db76a3
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id$
+# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+
+pkgname=mate-menu
+pkgver=5.6.5a
+pkgrel=1
+pkgdesc="Advanced menu for MATE Panel, a fork of MintMenu"
+arch=('any')
+url="https://bitbucket.org/ubuntu-mate/mate-menu"
+license=('GPL')
+depends=('mate-panel' 'python2-configobj' 'python2-gobject' 'python2-pyinotify' 'python2-xdg' 'python2-xlib' 'xdg-utils')
+makedepends=('git' 'python2-distutils-extra' 'python2-setuptools')
+install=$pkgname.install
+source=("$pkgname-$pkgver::git+https://bitbucket.org/ubuntu-mate/$pkgname.git#tag=$pkgver"
+ fix-crash.patch
+ fix-desktop-path.patch
+ optional-lsb_release.patch)
+md5sums=('SKIP'
+ '6b6623895d02b739d0d6fb4413f0b6ba'
+ '3aeb919106f0f6476b234e4ce6990a06'
+ '92c321a71c6f5ae61695d61eb5f89b50')
+
+prepare() {
+ cd $pkgname-$pkgver
+ patch -Np1 -i ../fix-crash.patch
+ patch -Np1 -i ../fix-desktop-path.patch
+ patch -Np1 -i ../optional-lsb_release.patch
+ sed -i 's@^#!.*python$@#!/usr/bin/python2@' lib/*.py
+}
+
+package() {
+ cd $pkgname-$pkgver
+ python2 setup.py install --root="$pkgdir" --optimize=1
+}
diff --git a/fix-crash.patch b/fix-crash.patch
new file mode 100644
index 000000000000..6179ac54d5d9
--- /dev/null
+++ b/fix-crash.patch
@@ -0,0 +1,167 @@
+diff -Naur mate-menu.orig/lib/mate-menu.py mate-menu/lib/mate-menu.py
+--- mate-menu.orig/lib/mate-menu.py 2015-11-07 02:12:28.507610662 +0100
++++ mate-menu/lib/mate-menu.py 2015-11-07 02:11:46.179765723 +0100
+@@ -747,6 +747,7 @@
+ x = c_int()
+ y = c_int()
+ # Get the dimensions/position of the widgetToAlignWith
++ gdk.gdk_window_get_origin.argtypes = [c_void_p, c_void_p, c_void_p]
+ gdk.gdk_window_get_origin(hash(self.applet.window), byref(x), byref(y))
+ entryX = x.value
+ entryY = y.value
+diff -Naur mate-menu.orig/mate_menu/easybuttons.py mate-menu/mate_menu/easybuttons.py
+--- mate-menu.orig/mate_menu/easybuttons.py 2015-11-07 02:12:28.370940187 +0100
++++ mate-menu/mate_menu/easybuttons.py 2015-11-07 02:11:46.183099149 +0100
+@@ -297,12 +297,14 @@
+
+ array = TargetEntry * 2
+ targets = array(( "text/plain", 0, 100 ), ( "text/uri-list", 0, 101 ))
++ gtk.gtk_drag_source_set.argtypes = [c_void_p, c_ushort, c_void_p, c_int, c_ushort]
+ gtk.gtk_drag_source_set(hash(self), Gdk.ModifierType.BUTTON1_MASK, targets, 2, Gdk.DragAction.COPY)
+
+ icon = self.getIcon( Gtk.IconSize.DND )
+ if icon:
+ iconName, s = icon.get_icon_name()
+ c = c_char_p(iconName.decode('utf-8', 'ignore').encode('ascii', 'ignore'))
++ gtk.gtk_drag_source_set_icon_name.argtypes = [c_void_p, c_char_p]
+ gtk.gtk_drag_source_set_icon_name( hash(self), c)
+
+ self.connectSelf( "focus-in-event", self.onFocusIn )
+@@ -414,6 +416,7 @@
+ if icon:
+ iconName, size = icon.get_icon_name()
+ c = c_char_p(iconName.encode('ascii', 'ignore'))
++ gtk.gtk_drag_source_set_icon_name.argtypes = [c_void_p, c_char_p]
+ gtk.gtk_drag_source_set_icon_name( hash(self), c)
+
+ def startupFileChanged( self, *args ):
+diff -Naur mate-menu.orig/mate_menu/keybinding.py mate-menu/mate_menu/keybinding.py
+--- mate-menu.orig/mate_menu/keybinding.py 2015-11-07 02:12:28.370940187 +0100
++++ mate-menu/mate_menu/keybinding.py 2015-11-07 02:11:46.179765723 +0100
+@@ -57,6 +57,7 @@
+ threading.Thread.__init__ (self)
+ self.setDaemon (True)
+
++ gdk.gdk_keymap_get_default.restype = c_void_p
+ self.keymap = capi.get_widget (gdk.gdk_keymap_get_default())
+ self.display = Display()
+ self.screen = self.display.screen()
+@@ -92,6 +93,7 @@
+ count = c_int()
+ array = (KeymapKey * 10)()
+ keys = cast(array, POINTER(KeymapKey))
++ gdk.gdk_keymap_get_entries_for_keyval.argtypes = [c_void_p, c_uint, c_void_p, c_void_p]
+ gdk.gdk_keymap_get_entries_for_keyval(hash(self.keymap), keyval, byref(keys), byref(count))
+ return keys[0].keycode
+
+@@ -135,6 +137,7 @@
+ if window is None:
+ self.window = self.screen.root
+ else:
++ gdk.gdk_x11_drawable_get_xid.argtypes = [c_void_p]
+ self.window = self.display.create_resource_object("window", gdk.gdk_x11_drawable_get_xid(hash(window)))
+ self.grab(self.keytext)
+
+diff -Naur mate-menu.orig/mate_menu/plugins/applications.py mate-menu/mate_menu/plugins/applications.py
+--- mate-menu.orig/mate_menu/plugins/applications.py 2015-11-07 02:12:28.374273614 +0100
++++ mate-menu/mate_menu/plugins/applications.py 2015-11-07 02:11:53.753309742 +0100
+@@ -279,6 +279,7 @@
+
+ self.favoritesBox.connect( "drag-data-received", self.ReceiveCallback )
+
++ gtk.gtk_drag_dest_set.argtypes = [c_void_p, c_ushort, c_void_p, c_int, c_ushort]
+ gtk.gtk_drag_dest_set ( hash(self.favoritesBox), Gtk.DestDefaults.MOTION | Gtk.DestDefaults.HIGHLIGHT | Gtk.DestDefaults.DROP, self.toButton, 2, Gdk.DragAction.COPY )
+ self.showFavoritesButton.connect( "drag-data-received", self.ReceiveCallback )
+ gtk.gtk_drag_dest_set ( hash(self.showFavoritesButton), Gtk.DestDefaults.MOTION | Gtk.DestDefaults.HIGHLIGHT | Gtk.DestDefaults.DROP, self.toButton, 2, Gdk.DragAction.COPY )
+@@ -583,6 +584,7 @@
+ # of the existing text, that's the most likely candidate anyhow
+ self.searchEntry.grab_focus()
+ if self.rememberFilter or not clear:
++ gtk.gtk_editable_set_position.argtypes = [c_void_p, c_int]
+ gtk.gtk_editable_set_position(hash(self.searchEntry), -1)
+ else:
+ self.searchEntry.set_text("")
+@@ -738,6 +740,7 @@
+ def keyPress( self, widget, event ):
+ if event.string.strip() != "" or event.keyval == Gdk.KEY_BackSpace:
+ self.searchEntry.grab_focus()
++ gtk.gtk_editable_set_position.argtypes = [c_void_p, c_int]
+ gtk.gtk_editable_set_position(hash(self.searchEntry), -1)
+ self.searchEntry.event( event )
+ return True
+@@ -802,6 +805,7 @@
+
+ mTree.show_all()
+ self.mateMenuWin.stopHiding()
++ gtk.gtk_menu_popup.argtypes = [c_void_p, c_void_p, c_void_p, c_void_p, c_void_p, c_uint, c_uint]
+ gtk.gtk_menu_popup(hash(mTree), None, None, None, None, ev.button, ev.time)
+ else:
+ mTree = Gtk.Menu()
+@@ -821,6 +825,7 @@
+ insertSpaceMenuItem.connect( "activate", self.onFavoritesInsertSpace, widget, insertBefore )
+ insertSeparatorMenuItem.connect( "activate", self.onFavoritesInsertSeparator, widget, insertBefore )
+ self.mateMenuWin.stopHiding()
++ gtk.gtk_menu_popup.argtypes = [c_void_p, c_void_p, c_void_p, c_void_p, c_void_p, c_uint, c_uint]
+ gtk.gtk_menu_popup(hash(mTree), None, None, None, None, ev.button, ev.time)
+
+ def menuPopup( self, widget, event ):
+@@ -879,6 +884,7 @@
+ startupMenuItem.connect( "toggled", self.onAddToStartup, widget )
+
+ self.mateMenuWin.stopHiding()
++ gtk.gtk_menu_popup.argtypes = [c_void_p, c_void_p, c_void_p, c_void_p, c_void_p, c_uint, c_uint]
+ gtk.gtk_menu_popup(hash(mTree), None, None, None, None, event.button, event.time)
+
+
+@@ -919,6 +925,7 @@
+ menu.show_all()
+
+ self.mateMenuWin.stopHiding()
++ gtk.gtk_menu_popup.argtypes = [c_void_p, c_void_p, c_void_p, c_void_p, c_void_p, c_uint, c_uint]
+ gtk.gtk_menu_popup(hash(menu), None, None, None, None, event.button, event.time)
+
+ #menu.attach_to_widget(self.searchButton, None)
+@@ -1207,8 +1214,10 @@
+ self.favorites.append( favButton )
+ self.favoritesPositionOnGrid( favButton )
+ favButton.connect( "drag-data-received", self.onFavButtonDragReorder )
++ gtk.gtk_drag_dest_set.argtypes = [c_void_p, c_ushort, c_void_p, c_int, c_ushort]
+ gtk.gtk_drag_dest_set( hash(favButton), Gtk.DestDefaults.MOTION | Gtk.DestDefaults.HIGHLIGHT | Gtk.DestDefaults.DROP, self.fromFav, 2, Gdk.DragAction.COPY )
+ favButton.connect( "drag-data-get", self.onFavButtonDragReorderGet )
++ gtk.gtk_drag_source_set.argtypes = [c_void_p, c_ushort, c_void_p, c_int, c_ushort]
+ gtk.gtk_drag_source_set( hash(favButton), Gdk.ModifierType.BUTTON1_MASK, self.toFav, 3, Gdk.DragAction.COPY )
+ position += 1
+
+@@ -1287,8 +1296,10 @@
+ self.favoritesPositionOnGrid( favButton )
+
+ favButton.connect( "drag-data-received", self.onFavButtonDragReorder )
++ gtk.gtk_drag_dest_set.argtypes = [c_void_p, c_ushort, c_void_p, c_int, c_ushort]
+ gtk.gtk_drag_dest_set( hash(favButton), Gtk.DestDefaults.MOTION | Gtk.DestDefaults.HIGHLIGHT | Gtk.DestDefaults.DROP, self.toFav, 3, Gdk.DragAction.COPY )
+ favButton.connect( "drag-data-get", self.onFavButtonDragReorderGet )
++ gtk.gtk_drag_source_set.argtypes = [c_void_p, c_ushort, c_void_p, c_int, c_ushort]
+ gtk.gtk_drag_source_set ( hash(favButton), Gdk.ModifierType.BUTTON1_MASK, self.toFav, 3, Gdk.DragAction.COPY )
+
+ if position >= 0:
+diff -Naur mate-menu.orig/mate_menu/plugins/places.py mate-menu/mate_menu/plugins/places.py
+--- mate-menu.orig/mate_menu/plugins/places.py 2015-11-07 02:12:28.374273614 +0100
++++ mate-menu/mate_menu/plugins/places.py 2015-11-07 02:11:55.766699096 +0100
+@@ -274,6 +274,7 @@
+ trashMenu.show_all()
+ emptyTrashMenuItem.connect ( "activate", self.emptyTrash, widget )
+ self.mateMenuWin.stopHiding()
++ gtk.gtk_menu_popup.argtypes = [c_void_p, c_void_p, c_void_p, c_void_p, c_void_p, c_uint, c_uint]
+ gtk.gtk_menu_popup(hash(trashMenu), None, None, None, None, 3, 0)
+
+ def emptyTrash( self, menu, widget):
+diff -Naur mate-menu.orig/mate_menu/pointerMonitor.py mate-menu/mate_menu/pointerMonitor.py
+--- mate-menu.orig/mate_menu/pointerMonitor.py 2015-11-07 02:12:28.374273614 +0100
++++ mate-menu/mate_menu/pointerMonitor.py 2015-11-07 02:11:46.183099149 +0100
+@@ -46,6 +46,7 @@
+
+ # Receives GDK windows
+ def addWindowToMonitor(self, window):
++ gdk.gdk_x11_drawable_get_xid.argtypes = [c_void_p]
+ xWindow = self.display.create_resource_object("window", gdk.gdk_x11_drawable_get_xid(hash(window)))
+ self.windows.append(xWindow)
+
diff --git a/fix-desktop-path.patch b/fix-desktop-path.patch
new file mode 100644
index 000000000000..3ae1d74ba79d
--- /dev/null
+++ b/fix-desktop-path.patch
@@ -0,0 +1,12 @@
+diff -Naur mate-menu-5.6.5a.orig/mate_menu/plugins/places.py mate-menu-5.6.5a/mate_menu/plugins/places.py
+--- mate-menu-5.6.5a.orig/mate_menu/plugins/places.py 2015-11-07 08:22:02.506887000 +0100
++++ mate-menu-5.6.5a/mate_menu/plugins/places.py 2015-11-07 08:38:02.673847204 +0100
+@@ -190,7 +190,7 @@
+ try:
+ from configobj import ConfigObj
+ config = ConfigObj(home + "/.config/user-dirs.dirs")
+- tmpdesktopDir = config['XDG_DESKTOP_DIR']
++ tmpdesktopDir = config['XDG_DESKTOP_DIR'].replace("$HOME", home)
+ if os.path.exists(tmpdesktopDir):
+ desktopDir = tmpdesktopDir
+ except Exception, detail:
diff --git a/mate-menu.install b/mate-menu.install
new file mode 100644
index 000000000000..326aa98a2f02
--- /dev/null
+++ b/mate-menu.install
@@ -0,0 +1,11 @@
+post_install() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/optional-lsb_release.patch b/optional-lsb_release.patch
new file mode 100644
index 000000000000..d8841c56ddef
--- /dev/null
+++ b/optional-lsb_release.patch
@@ -0,0 +1,21 @@
+diff -Naur mate-menu.orig/lib/mate-menu.py mate-menu/lib/mate-menu.py
+--- mate-menu.orig/lib/mate-menu.py 2015-11-07 05:57:34.444720000 +0100
++++ mate-menu/lib/mate-menu.py 2015-11-07 06:04:03.221247132 +0100
+@@ -563,11 +563,12 @@
+ def createPanelButton( self ):
+ self.button_icon = Gtk.Image.new_from_file( self.buttonIcon )
+ self.systemlabel = Gtk.Label(label= self.buttonText )
+- process = subprocess.Popen(['lsb_release', '-d'], stdout=subprocess.PIPE)
+- out, err = process.communicate()
+- tooltip = out.replace('Description:', '').strip()
+- self.systemlabel.set_tooltip_text(tooltip)
+- self.button_icon.set_tooltip_text(tooltip)
++ if os.path.exists("/usr/bin/lsb_release"):
++ process = subprocess.Popen(['lsb_release', '-d'], stdout=subprocess.PIPE)
++ out, err = process.communicate()
++ tooltip = out.replace('Description:', '').strip()
++ self.systemlabel.set_tooltip_text(tooltip)
++ self.button_icon.set_tooltip_text(tooltip)
+ if self.applet.get_orient() == MatePanelApplet.AppletOrient.UP or self.applet.get_orient() == MatePanelApplet.AppletOrient.DOWN:
+ self.button_box = Gtk.HBox()
+ self.button_box.pack_start( self.button_icon, False, False, 0 )