diff options
Diffstat (limited to 'rox-base/rox-session/files/rox-session-0.30-wmselect.patch')
-rw-r--r-- | rox-base/rox-session/files/rox-session-0.30-wmselect.patch | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/rox-base/rox-session/files/rox-session-0.30-wmselect.patch b/rox-base/rox-session/files/rox-session-0.30-wmselect.patch new file mode 100644 index 000000000000..e414100cf577 --- /dev/null +++ b/rox-base/rox-session/files/rox-session-0.30-wmselect.patch @@ -0,0 +1,71 @@ +--- ROX-Session/wm.py.orig 2008-01-04 10:42:40.000000000 -0500 ++++ ROX-Session/wm.py 2008-01-04 15:26:26.000000000 -0500 +@@ -44,7 +44,8 @@ + import session + session.may_run_login_script() + else: +- choose_wm('None of the default window managers are installed') ++ choose_wm(_("No window manager has been configured. " ++ "Please enter one below:")) + + def available_in_path(command): + for x in path_dirs: +@@ -56,13 +57,9 @@ + def get_window_manager(): + user_wm = settings.settings.get('ROX/WindowManager', None) + if user_wm: +- wms = [user_wm] + window_managers +- else: +- wms = window_managers +- for wm in wms: +- wm_split = shell_split(wm) ++ wm_split = shell_split(user_wm) + if available_in_path(wm_split[0]): +- return wm, wm_split ++ return user_wm, wm_split + return None, None + + def wm_died(status): +@@ -76,24 +73,37 @@ + "Please restart it, or choose another window manager.")) + + def choose_wm(message): ++ current_wm = get_window_manager()[0] + box = rox.Dialog('Choose a window manager', None, + g.DIALOG_MODAL | g.DIALOG_NO_SEPARATOR) +- box.add_button(g.STOCK_CLOSE, g.RESPONSE_CANCEL) ++ if current_wm is not None: ++ box.add_button(g.STOCK_CLOSE, g.RESPONSE_CANCEL) + box.add_button(g.STOCK_EXECUTE, g.RESPONSE_OK) + box.set_position(g.WIN_POS_CENTER) + + box.vbox.pack_start(g.Label(message), True, True, 0) + box.set_default_response(g.RESPONSE_OK) + +- entry = g.Entry() +- entry.set_activates_default(True) ++ entry = g.combo_box_entry_new_text() + box.vbox.pack_start(entry, False, True, 0) +- entry.set_text(get_window_manager()[0] or '') ++ ++ current_wm_in_list = False ++ index = 0 ++ for wm in window_managers: ++ if available_in_path(shell_split(wm)[0]): ++ entry.append_text(wm) ++ if wm == current_wm: ++ current_wm_in_list = True ++ entry.set_active(index) ++ index += 1 ++ if not current_wm_in_list and current_wm is not None: ++ entry.prepend_text(current_wm) ++ entry.set_active(0) + + box.vbox.show_all() + + if box.run() == int(g.RESPONSE_OK): +- settings.settings.set('ROX/WindowManager', entry.get_text()) ++ settings.settings.set('ROX/WindowManager', entry.get_active_text()) + box.destroy() + start() + else: |