Hello community, here is the log from the commit of package x-tile for openSUSE:Factory checked in at 2012-01-05 19:16:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/x-tile (Old) and /work/SRC/openSUSE:Factory/.x-tile.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "x-tile", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/x-tile/x-tile.changes 2011-09-23 12:50:53.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.x-tile.new/x-tile.changes 2012-01-05 19:16:45.000000000 +0100 @@ -1,0 +2,9 @@ +Wed Jan 4 09:39:47 UTC 2012 - [email protected] + +- Update to version 2.2: + + Add AppIndicator support. + + Fixes for Ubuntu-isms. +- Stop removing %{_datadir}/x-tile/glade/x-tile.glade.h in + %install: it's gone now. + +------------------------------------------------------------------- Old: ---- x-tile-2.1.tar.gz New: ---- x-tile-2.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ x-tile.spec ++++++ --- /var/tmp/diff_new_pack.Ysrxwy/_old 2012-01-05 19:16:45.000000000 +0100 +++ /var/tmp/diff_new_pack.Ysrxwy/_new 2012-01-05 19:16:45.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package x-tile # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,14 +16,13 @@ # - Name: x-tile -Version: 2.1 -Release: 1 -License: GPL-2.0+ +Version: 2.2 +Release: 0 Summary: Panel applet for tiling windows -Url: http://www.giuspen.com/x-tile/ +License: GPL-2.0+ Group: Productivity/Other +Url: http://www.giuspen.com/x-tile/ Source: http://www.giuspen.com/software/%{name}-%{version}.tar.gz BuildRequires: fdupes BuildRequires: python-gtk @@ -60,7 +59,6 @@ %install %{__python} setup.py install --prefix=%{_prefix} --exec-prefix=%{_exec_prefix} -f --root=%{buildroot} -rm %{buildroot}%{_datadir}/x-tile/glade/x-tile.glade.h %find_lang %{name} %{?no_lang_C} %fdupes %{buildroot} %suse_update_desktop_file %{name} DesktopUtility ++++++ x-tile-2.1.tar.gz -> x-tile-2.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/x-tile-2.1/debian/changelog new/x-tile-2.2/debian/changelog --- old/x-tile-2.1/debian/changelog 2011-07-08 22:25:57.000000000 +0200 +++ new/x-tile-2.2/debian/changelog 2011-12-26 21:03:14.000000000 +0100 @@ -1,4 +1,4 @@ -x-tile (2.1-1) stable; urgency=low +x-tile (2.2-1) stable; urgency=low * Fellow upstream. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/x-tile-2.1/glade/x-tile.glade.h new/x-tile-2.2/glade/x-tile.glade.h --- old/x-tile-2.1/glade/x-tile.glade.h 2011-07-02 22:37:42.000000000 +0200 +++ new/x-tile-2.2/glade/x-tile.glade.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,58 +0,0 @@ -char *s = N_("\n" - "This program is free software; you can redistribute it and/or modify\n" - "it under the terms of the GNU General Public License as published by\n" - "the Free Software Foundation; either version 2 of the License, or\n" - "(at your option) any later version.\n" - "\n" - "This program is distributed in the hope that it will be useful,\n" - "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" - "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" - "GNU General Public License for more details.\n" - "\n" - "You should have received a copy of the GNU General Public License\n" - "along with this program; if not, write to the Free Software\n" - "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,\n" - "MA 02110-1301, USA."); -char *s = N_(" Language "); -char *s = N_("1) Tile Some Windows Manually"); -char *s = N_("2) Select Them in the X Tile Windows List"); -char *s = N_("3) Click the Update Button"); -char *s = N_("<b>Custom Tiling Layout</b>"); -char *s = N_("About X Tile"); -char *s = N_("Add Row"); -char *s = N_("Add an Application Filter"); -char *s = N_("Cancel"); -char *s = N_("Chinese Simplified (zh_CN) Khiyuan Fan <[email protected]>\n" - "Chinese Traditional (zh_TW) Yan-ren Tsai <[email protected]>\n" - "Spanish (es_AR) MeloPixel <[email protected]>\n" - "French (fr) Ludovic Troisi <[email protected]>\n" - "German (de) Jöran Zeller <[email protected]>\n" - "Italian (it) Giuseppe Penone <[email protected]>\n" - "Russian (ru) Andriy Kovtun <[email protected]>"); -char *s = N_("Close"); -char *s = N_("Copyright © 2009-2011\n" - "Giuseppe Penone <[email protected]>\n" - "Chris Camacho <[email protected]>"); -char *s = N_("Do Not List Minimized Windows"); -char *s = N_("Enable System Tray Docking"); -char *s = N_("Exit After Tile"); -char *s = N_("Height"); -char *s = N_("OK"); -char *s = N_("Only Current Workspace"); -char *s = N_("Override Monitor 1 Tiling Area"); -char *s = N_("Override Monitor 2 Tiling Area"); -char *s = N_("Position"); -char *s = N_("Preferences"); -char *s = N_("Remove an Application Filter"); -char *s = N_("Rows to Filter"); -char *s = N_("Rows to be Selected by Default"); -char *s = N_("Show Toolbar"); -char *s = N_("Size"); -char *s = N_("Start Minimized on the System Tray"); -char *s = N_("Tile the Windows Upon your X Desktop"); -char *s = N_("Update"); -char *s = N_("Width"); -char *s = N_("X"); -char *s = N_("X Tile"); -char *s = N_("Y"); -char *s = N_("http://www.giuspen.com/x-tile/"); Files old/x-tile-2.1/locale/de/LC_MESSAGES/x-tile.mo and new/x-tile-2.2/locale/de/LC_MESSAGES/x-tile.mo differ Files old/x-tile-2.1/locale/es_AR/LC_MESSAGES/x-tile.mo and new/x-tile-2.2/locale/es_AR/LC_MESSAGES/x-tile.mo differ Files old/x-tile-2.1/locale/fr/LC_MESSAGES/x-tile.mo and new/x-tile-2.2/locale/fr/LC_MESSAGES/x-tile.mo differ Files old/x-tile-2.1/locale/it/LC_MESSAGES/x-tile.mo and new/x-tile-2.2/locale/it/LC_MESSAGES/x-tile.mo differ Files old/x-tile-2.1/locale/ru/LC_MESSAGES/x-tile.mo and new/x-tile-2.2/locale/ru/LC_MESSAGES/x-tile.mo differ Files old/x-tile-2.1/locale/zh_CN/LC_MESSAGES/x-tile.mo and new/x-tile-2.2/locale/zh_CN/LC_MESSAGES/x-tile.mo differ Files old/x-tile-2.1/locale/zh_TW/LC_MESSAGES/x-tile.mo and new/x-tile-2.2/locale/zh_TW/LC_MESSAGES/x-tile.mo differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/x-tile-2.1/modules/cons.py new/x-tile-2.2/modules/cons.py --- old/x-tile-2.1/modules/cons.py 2011-07-08 22:25:57.000000000 +0200 +++ new/x-tile-2.2/modules/cons.py 2011-12-26 21:03:33.000000000 +0100 @@ -28,7 +28,7 @@ APP_NAME = "x-tile" -VERSION = "2.1" +VERSION = "2.2" if os.path.isdir('glade'): GLADE_PATH = "glade/" ICON_PLACE = "linux/x-tile.svg" @@ -220,9 +220,9 @@ </toolbar> <popup name='SysTrayMenu'> - <menuitem action='ExitApp'/> + <menuitem action='ShowHideMainWin'/> <separator/> - <menuitem action='All_About'/> + <menuitem action='ExitApp'/> <separator/> <menuitem action='All_C'/> <menuitem action='All_U'/> @@ -244,6 +244,8 @@ <separator/> <menuitem action='All_Invert'/> <menuitem action='All_Undo'/> + <separator/> + <menuitem action='All_About'/> </popup> <popup name='ListMenu'> @@ -271,6 +273,7 @@ ( "Reload", "Reload Windows List", _("_Reload"), "F5", _("Reload the Windows List"), inst.reload_windows_list), ( "QuitApp", "Quit App", _("_Quit"), "<control>Q", _("Quit the Application"), inst.quit_application), ( "ExitApp", "Quit App", _("_Exit X Tile"), "<control><shift>Q", _("Exit from X Tile"), inst.quit_application_totally), + ( "ShowHideMainWin", "Tile Quad", _("Show/Hide _X Tile"), None, _("Toggle Show/Hide X Tile"), inst.toggle_show_hide_main_window), ( "Preferences", "gtk-preferences", _("_Preferences"), "<control><alt>P", _("Open the Preferences Window"), inst.dialog_preferences), ( "SelectAll", "Select All", _("Select _All"), "<control>A", _("Select All the Windows in the List"), inst.flag_all_rows), ( "DeselectAll", "Deselect All", _("Deselect A_ll"), "<control><shift>A", _("Deselect All the Windows in the List"), inst.unflag_all_rows), Files old/x-tile-2.1/modules/cons.pyc and new/x-tile-2.2/modules/cons.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/x-tile-2.1/modules/core.py new/x-tile-2.2/modules/core.py --- old/x-tile-2.1/modules/core.py 2011-07-08 22:25:57.000000000 +0200 +++ new/x-tile-2.2/modules/core.py 2011-12-26 20:24:05.000000000 +0100 @@ -25,7 +25,11 @@ # MA 02110-1301, USA. import gtk, gobject, gconf -import sys, ctypes, webbrowser, time, subprocess +import os, sys, ctypes, webbrowser, time, subprocess +try: + import appindicator + HAS_APPINDICATOR = True +except: HAS_APPINDICATOR = False import cons, support, tilings @@ -248,6 +252,15 @@ def __init__(self, store): """Instantiate the Glade Widgets Wrapper, create the view, retrieves and stores the information about the running desktop self.geometry""" + # create a variable pointing to the instance of the InfoModel class + self.store = store + # system settings + try: + gtk_settings = gtk.settings_get_default() + gtk_settings.set_property("gtk-button-images", True) + gtk_settings.set_property("gtk-menu-images", True) + except: pass # older gtk do not have the property "gtk-menu-images" + os.environ['UBUNTU_MENUPROXY'] = '0' # for custom stock icons not visible in appmenu # instantiate the Glade Widgets Wrapper self.glade = GladeWidgetsWrapper(cons.GLADE_PATH + 'x-tile.glade', self) # ui manager @@ -264,8 +277,6 @@ self.glade.vbox_main.pack_start(self.ui.get_widget("/ToolBar"), False, False) self.glade.vbox_main.reorder_child(self.ui.get_widget("/ToolBar"), 1) self.ui.get_widget("/ToolBar").set_style(gtk.TOOLBAR_ICONS) - # create a variable pointing to the instance of the InfoModel class - self.store = store # create the view self.view = gtk.TreeView(store.get_model()) self.view.set_headers_visible(False) @@ -335,40 +346,52 @@ def status_icon_enable(self): """Creates the Stats Icon""" - self.status_icon = gtk.StatusIcon() - self.status_icon.set_from_stock("Tile Quad") - self.status_icon.connect('button-press-event', self.on_mouse_button_clicked_systray) - self.status_icon.set_tooltip(_("Tile the Windows Upon your X Desktop")) + if HAS_APPINDICATOR: + self.ind = appindicator.Indicator("x-tile", "indicator-messages", appindicator.CATEGORY_APPLICATION_STATUS) + self.ind.set_status(appindicator.STATUS_ACTIVE) + self.ind.set_attention_icon("indicator-messages-new") + self.ind.set_icon("x-tile") + self.ind.set_menu(self.ui.get_widget("/SysTrayMenu")) + else: + self.status_icon = gtk.StatusIcon() + self.status_icon.set_from_stock("Tile Quad") + self.status_icon.connect('button-press-event', self.on_mouse_button_clicked_systray) + self.status_icon.set_tooltip(_("Tile the Windows Upon your X Desktop")) def on_mouse_button_clicked_systray(self, widget, event): """Catches mouse buttons clicks upon the system tray icon""" - if event.button == 1: - if self.win_on_screen: self.window_hide() - else: - self.window_position_restore() - self.glade.window.show() - self.reload_windows_list() - self.win_on_screen = True + if event.button == 1: self.toggle_show_hide_main_window() elif event.button == 3: self.ui.get_widget("/SysTrayMenu").popup(None, None, None, event.button, event.time) + def toggle_show_hide_main_window(self, *args): + if self.win_on_screen: self.window_hide() + else: + self.window_position_restore() + self.glade.window.show() + self.reload_windows_list() + self.win_on_screen = True + def on_checkbutton_systray_docking_toggled(self, checkbutton): """SysTray Toggled Handling""" - if checkbutton.get_active(): - if not self.systray_on: self.status_icon_enable() + self.systray_on = checkbutton.get_active() + if self.systray_on: + if not HAS_APPINDICATOR: + if "status_icon" in dir(self): self.status_icon.set_property('visible', True) + else: self.status_icon_enable() + else: + if "ind" in dir(self): self.ind.set_status(appindicator.STATUS_ACTIVE) + else: self.status_icon_enable() self.ui.get_widget("/MenuBar/FileMenu/ExitApp").set_property('visible', True) self.glade.checkbutton_start_minimized.set_sensitive(True) if self.gconf_client.get_string(cons.GCONF_SYSTRAY_ENABLE % glob.screen_index) != cons.STR_TRUE: self.gconf_client.set_string(cons.GCONF_SYSTRAY_ENABLE % glob.screen_index, cons.STR_TRUE) - self.systray_on = True else: - if self.systray_on: - self.status_icon.set_property('visible', False) - del self.status_icon + if not HAS_APPINDICATOR: self.status_icon.set_property('visible', False) + else: self.ind.set_status(appindicator.STATUS_PASSIVE) self.ui.get_widget("/MenuBar/FileMenu/ExitApp").set_property('visible', False) self.glade.checkbutton_start_minimized.set_sensitive(False) if self.gconf_client.get_string(cons.GCONF_SYSTRAY_ENABLE % glob.screen_index) != cons.STR_FALSE: self.gconf_client.set_string(cons.GCONF_SYSTRAY_ENABLE % glob.screen_index, cons.STR_FALSE) - self.systray_on = False def on_checkbutton_start_minimized_toggled(self, checkbutton): """Start Minimized on SysTray Toggled Handling""" @@ -858,9 +881,7 @@ def quit_application_totally(self, *args): """The process is Shut Down""" - if self.systray_on: - self.status_icon.set_property('visible', False) - del self.status_icon + if not HAS_APPINDICATOR and "status_icon" in dir(self): self.status_icon.set_visible(False) self.save_win_pos_n_size() self.glade.window.destroy() gtk.main_quit() Files old/x-tile-2.1/modules/core.pyc and new/x-tile-2.2/modules/core.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/x-tile-2.1/modules/globs.py new/x-tile-2.2/modules/globs.py --- old/x-tile-2.1/modules/globs.py 2011-07-08 22:35:50.000000000 +0200 +++ new/x-tile-2.2/modules/globs.py 2011-12-26 22:18:24.000000000 +0100 @@ -142,4 +142,5 @@ if rect.y + rect.height > drawing_area_size[1]: drawing_area_size[1] = rect.y + rect.height for strut_win in strut_windows: self.monitors_areas[-1] = support.subtract_areas(self.monitors_areas[-1], strut_win) + #print self.monitors_areas self.drawing_rect = gtk.gdk.Rectangle(0, 0, drawing_area_size[0]/cons.DRAW_SCALE, drawing_area_size[1]/cons.DRAW_SCALE) Files old/x-tile-2.1/modules/globs.pyc and new/x-tile-2.2/modules/globs.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/x-tile-2.1/modules/support.py new/x-tile-2.2/modules/support.py --- old/x-tile-2.1/modules/support.py 2011-07-08 22:34:38.000000000 +0200 +++ new/x-tile-2.2/modules/support.py 2011-12-26 22:08:00.000000000 +0100 @@ -171,34 +171,39 @@ return 0,0,0,0 def is_inside(p, pdim, a, adim): - """Returns True if p and p+dim is between a and a+dim""" - return ( (p >= a) and (p+pdim >= a) and (p <= a+adim) and (p+pdim <= a+adim) ) + """Returns True if p <---> p+dim is between a <---> a+dim""" + return ( (p+pdim/2 > a) and (p+pdim/2 < a+adim) ) def subtract_areas(white_area, black_area): """Returns the white_area without the black_area""" + #print "white_area", white_area + #print "black_area", black_area if not is_inside(black_area[0], black_area[2], white_area[0], white_area[2])\ or not is_inside(black_area[1], black_area[3], white_area[1], white_area[3]): + #print "not is_inside" return white_area # ignore the desktop strut if black_area[2] > white_area[2]/2 and black_area[3] > white_area[3]/2: + #print "strut ignored" return white_area # we have to understand whether the panel is top, bottom, left or right if black_area[2] < black_area[3]: # width < height => this is a left or right panel if black_area[0] == white_area[0]: - # this is a left panel + #print "left panel" white_area[0] += black_area[2] + white_area[2] -= black_area[2] else: - # this is a right panel + #print "right panel" white_area[2] -= black_area[2] else: # width > height => this is a top or bottom panel if black_area[1] == white_area[1]: - # this is a top panel + #print "top panel" white_area[1] += black_area[3] - white_area[3] -= black_area[3] # this was not taken into account previously + white_area[3] -= black_area[3] else: - # this is a bottom panel + #print "bottom panel" white_area[3] -= black_area[3] return white_area Files old/x-tile-2.1/modules/support.pyc and new/x-tile-2.2/modules/support.pyc differ Files old/x-tile-2.1/modules/tilings.pyc and new/x-tile-2.2/modules/tilings.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/x-tile-2.1/x-tile new/x-tile-2.2/x-tile --- old/x-tile-2.1/x-tile 2011-07-03 23:41:29.000000000 +0200 +++ new/x-tile-2.2/x-tile 2011-12-26 20:24:05.000000000 +0100 @@ -30,7 +30,7 @@ import gtk, gconf import __builtin__ -if os.path.isdir('modules'): MODULES_PATH = 'modules/' +if os.path.isfile('modules/globs.py'): MODULES_PATH = 'modules/' else: MODULES_PATH = '/usr/share/x-tile/modules/' sys.path.append(MODULES_PATH) import cons, globs, core @@ -40,16 +40,16 @@ gconf_client.add_dir(cons.GCONF_DIR, gconf.CLIENT_PRELOAD_NONE) lang_str = gconf_client.get_string(cons.GCONF_LANG) if lang_str == None: - gconf_client.set_string(cons.GCONF_LANG, "default") - lang_str = "default" + gconf_client.set_string(cons.GCONF_LANG, "default") + lang_str = "default" if lang_str != "default": os.environ["LANGUAGE"] = lang_str try: - locale.bindtextdomain(cons.APP_NAME, cons.LOCALE_PATH) - gettext.translation(cons.APP_NAME, cons.LOCALE_PATH).install() + locale.bindtextdomain(cons.APP_NAME, cons.LOCALE_PATH) + gettext.translation(cons.APP_NAME, cons.LOCALE_PATH).install() except: - def _(transl_str): - return transl_str - __builtin__._ = _ + def _(transl_str): + return transl_str + __builtin__._ = _ __builtin__.glob = globs.GlobalsObject() @@ -61,46 +61,46 @@ # icons generation factory = gtk.IconFactory() for filename, stock_name in cons.ICONS_FILENAMES: - pixbuf = gtk.gdk.pixbuf_new_from_file(filename) - iconset = gtk.IconSet(pixbuf) - factory.add(stock_name, iconset) + pixbuf = gtk.gdk.pixbuf_new_from_file(filename) + iconset = gtk.IconSet(pixbuf) + factory.add(stock_name, iconset) factory.add_default() if len(sys.argv) < 2: sys.argv.append("w") arg = sys.argv[1] if arg == "w": - x = core.XTile(core.InfoModel()) - x.launch_application() - x.reload_windows_list() - gtk.main() + x = core.XTile(core.InfoModel()) + x.launch_application() + x.reload_windows_list() + gtk.main() elif arg in cons.CMD_LINE_ACTIONS: - x = core.XTile(core.InfoModel()) - x.launch_application() - if arg not in ["z", "i"]: - x.reload_windows_list() - x.flag_all_rows() - if arg == "z": x.undo_tiling() - elif arg == "i": x.invert_tiling() - elif arg == "v": x.tile_vertically() - elif arg == "h": x.tile_horizontally() - elif arg == "u": x.tile_triangle_up() - elif arg == "d": x.tile_triangle_down() - elif arg == "l": x.tile_triangle_left() - elif arg == "r": x.tile_triangle_right() - elif arg == "q": x.tile_quad() - elif arg == "g": - if len(sys.argv) >= 4: - try: - cons.GRID_ROWS = int(sys.argv[2]) - cons.GRID_COLS = int(sys.argv[3]) - x.tile_grid() - except: print "bad arguments" - else: x.dialog_grid() - elif arg == "1": x.tile_custom_1_run() - elif arg == "2": x.tile_custom_2_run() - elif arg == "m": x.maximize_checked_windows() - elif arg == "M": x.unmaximize_checked_windows() - elif arg == "c": x.close_checked_windows() + x = core.XTile(core.InfoModel()) + x.launch_application() + if arg not in ["z", "i"]: + x.reload_windows_list() + x.flag_all_rows() + if arg == "z": x.undo_tiling() + elif arg == "i": x.invert_tiling() + elif arg == "v": x.tile_vertically() + elif arg == "h": x.tile_horizontally() + elif arg == "u": x.tile_triangle_up() + elif arg == "d": x.tile_triangle_down() + elif arg == "l": x.tile_triangle_left() + elif arg == "r": x.tile_triangle_right() + elif arg == "q": x.tile_quad() + elif arg == "g": + if len(sys.argv) >= 4: + try: + cons.GRID_ROWS = int(sys.argv[2]) + cons.GRID_COLS = int(sys.argv[3]) + x.tile_grid() + except: print "bad arguments" + else: x.dialog_grid() + elif arg == "1": x.tile_custom_1_run() + elif arg == "2": x.tile_custom_2_run() + elif arg == "m": x.maximize_checked_windows() + elif arg == "M": x.unmaximize_checked_windows() + elif arg == "c": x.close_checked_windows() else: # -h - print cons.HELP_TEXT + print cons.HELP_TEXT -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
