Welcome to the collection of all patches considered for applying to Sawfish. Here you can add new patches or review submitted patches for inclusion into SVN tree. A patch is included/rejected when sufficient number of people provided a good reasoning for such decision.
- To add a new patch (licensed under GPLv2), write the name and click below
<createbox>
preload=Template:Patch break=no buttonlabel=Create patch page width=30 default=Name of new patch </createbox> |
- To review a submitted patch please try it and
- Write your verdict, using one of wiki templates below:
- Write your reasoning, please be as specific as possible - explain what it corrects, try to prove that this patch does not introduce new bugs, etc. Or on the contrary - point out what's wrong with the patch.
Submitted patches | Suspended patches | Accepted patches | Rejected patches |
---|
Suspended patches
Patch | Author | Description |
---|---|---|
Martin Stjernholm, uploaded by Christopher Bratusek, adaptation by Teika kazura. |
Current sawfish maintains window stacking order by MRU, or more-recently-used, and there's no way to define other stacking order. The stacking order is used in window-cycling (which corresponds to Alt-tab in Microsoft Windows.) Cycling is implemented in wm/commands/x-cycle.jl, and basically it does not depend on the specific way of stacking order. Martin Stjernholm submitted this patch in 2004 which enables to register other window stacking order, and therein MRU is an implementation of stacking order. This API is provided in wm/util/window-order.jl where the original MRU is defined. The patch was rejected by the maintainer of sawfish. So Stjernholm didn't use this patch for his own use. Instead, he rewrote x-cycle.jl to meet his purpose where stacking is based on window position, not MRU. I, Teika kazura, thank Stjernholm who kindly answered my questions on this patch. See also Tiling placement by the same author. Original appearance[]Originally appeared at http://mail.gnome.org/archives/sawfish-list/2004-February/msg00000.html , and replies can be found at http://mail.gnome.org/archives/sawfish-list/2004-March/msg00007.html . The author hasn't modified it since, because it was rejected. It is also submitted to http://bugzilla.gnome.org/show_bug.cgi?id=137772 . Details[]
| |
Jeremy Bryan Smith |
I have a "Kensington Expert Mouse Pro" USB trackball device, which in addition to 4 regular mouse buttons, mouse wheel up/down and mouse wheel button, has 6 "extra" buttons (for a grand total of 13). In the past, X did not seem to support those extra buttons and so I was using a separate program I wrote to configure the buttons, but after upgrading to Xorg 7.1, I noticed that xev was registering those extra buttons. So I quickly opened Sawfish Configurator to set them up. Unfortunately, Sawfish could only recognize 9 buttons. I was able to modify the source so that Sawfish recognizes these buttons (see attachment), but now I have another problem. When I click on the root window, Sawfish recognizes the button clicks and performs my configured actions. However, if I click on any window other than the root with buttons 9, 11, 12, and 13, the window is given focus and my Sawfish command is not executed. I would expect it to act the same as the others: execute the programmed command and do not set focus to any window. All of my 6 "extra" buttons (8-13) are configured to switch to workspaces 1-6, respectively. Any ideas? | |
This patch allows the new window not to be focused when it appeared, overriding the global option `focus-windows-when-mapped'. Description[]Let me remind you first that there's the global option `focus-windows-when-mapped', and the boolean window property `focus-when-mapped'. When a new window appears, will it be focused? Compare these situations:
Let me summarize: if a boolean property is unset, nothing special is meant, the default. When set and is false, then it is stronger; a negation. At least I understand so. Background[]Why this is suspended, dispite of its usefulness? It used to be unable for Sawfish to distinguish between an unset property and set with the value nil. So fixing only 'focus when mapped' field is a bit lopsided - not consistent with other options. | ||
Fernando Carmona Varo <ferkiwi@gmail.com> |
This adds two new window hooks: 'after-raise-window-hook' and 'after-lower-window-hook' which are called at the end of raise-window and lower-window respectively. I've been looking at the code and I think all functions related to raise/lower to top/bottom depend on this two functions, so I think this is the right place for the hook. It should be noted, however, that this hooks wont be called if the depth of the windows is modified slightly by other means (not really raising to the top nor lowering to the bottom). But I think this is ok, since raising and lowering are commands that trigger other operations (like changing the depth of transients/group) and this is consistent with it. UPDATE: I've remade the patch properly (using svn diff), and added before- hooks (I think this are in fact better for other purpose).
| |
Andrew Sayers <ug55aes@cs.bham.ac.uk> (Submitted by RodrigoGallardo from debian bug 144434.) |
As an alteration to Sawfish's "shade-hover" mode, I've written a bit of code that shades and unshades a window when it gains and loses the focus. Hitting the "shade" button on a temporarily-unshaded window will set it to be permanently unshaded. It does this by exploiting the fact that a window's "shade" property has a slightly odd relationship with the actual shaded state of a window (which, if not deliberate, I'd like filed as a non-bug :). I suspect Sawfish's "shade-hover" mode is used mostly by people who prefer the focus to be updated on window-enter and window-exit (I prefer window-enter only). If so, shade-focus can be seen as a generalisation of shade-hover, because they behave exactly the same with enter-exit focus switching. The code isn't that aesthetically pleasing - I've been using the WM for less than a week, so I'm not fully up on the guts of the system yet :) It works, though. An interesting extension would be allow windows to individually choose between "shade-hover", "shade-focus" and "no auto-shading", but that kind of thing is way beyond my current abilities :) |
Submitted patches
Patch | Author | Description |
---|---|---|
Harald van Dijk |
When a window grabs focus, sawfish doesn't treat it as a "focus out" of the old window, but does treat it as a "focus in" of the new one. This causes problems with Global Menu Bar for GNOME: when opening a menu, the menu grabs keyboard input. In sawfish, as a result, the GNOME top panel (or wherever you have placed the menu) becomes focused, and the menu bar is updated to reflect that no application window has focus. In short, the menu bar is completely unusable. The patch made focus_in ignore the same events that focus_out already ignores, but was updated after comments on the mailing list to only affect the _NET_ACTIVE_WINDOW property so that all other focus-related functions (including updating the window frame) get called, and to update mode_to_sym to handle NotifyWhileGrabbed events. Note that even with this patch, it is necessary to force the GNOME panel to "never focus". The panel is focusable in sawfish and fluxbox, which causes the same problem even without opening menus, but that is not a bug in the window manager, and easily worked around using for example Window Rules from the Sawfish Configurator. | |
Janek Kozicki |
See related patch Xinerama and X ConfigureWindow fix, and ML short discussion: [1]. After some testing I can say that error_handler() isn't necessary at all. I don't know Xlib good enough to know how to remove it, so, I just propose to make it empty.
| |
Rejected patches
Patch | Author | Description |
---|---|---|
Fernando Carmona Varo |
If you have ever tried to use the keyboard when moving/resizing windows (by means of the move-window-interactively command) and you have set a bigger mouse-cursor-increment value to move faster (what is a need if you have not a low resolution display). You probably noticed that the window is not responsive at all, and it doesn't move when the mouse cursor does move. This patch is intended to fix that bug. If applied, windows will follow the mouse the way it should be. UPDATE: I was asked by Christopher to write a smooth-warp-cursor function too. I think this could be a good idea to be used for other purposes in next patches. A version of the patch including this function is here, but let's first discuss this one (I'm not very sure of making a second patch for the same file, better wait for next revision).
| |
Rüdiger Otte |
This patch is rejected in 2008. You can see the patch and the discussion here. What made the author suffer is that clicking raises windows. First make sure:
Some windows do raise even if you've done the above two. It's Sawfish bug, sorry, and you can avoid it by:
| |
Daniel M German (Updated by Teika kazura) |
This patch adds 2 features that work in tandem: 1. display-wininfo displays the workspace in which the window lies. (if the display-wininfo-show-workspace variable is not nil) 2. the option to indicate if one should switch to a different workspace when cycling windows (like when using Alt-Tab). This option is enabled only if cycle-switch-workspaces is nil. I have checked and only x-cycle uses display-wininfo, so this patch should have no side effects. Update July 23, 10:31. I have updated the patch. If the variable cycle-show-window-names is nil (user wants no name of window displayed when cycling) AND cycle-switch-workspaces is nil (user does not want to momentarily switch workspaces) then the title of the window is displayed (otherwise there is no visual clue). | |
Philip Langdale |
Make window to draw properly with transparent pieces. So, I've been playing around with the new gnome-terminal with true transparency and it's provoked me to fix the problem where ARGB windows end up with transparent frame elements. This occurs because gdk_pixbuf_xlib actively clobbers the alpha channel when rendering into Drawables. As it's easier to fix sawfish than to get a gtk patch in, I've come up with this change that ensures the alpha value is 0xFF (fully opaque) when drawing the frame elements. It's a little sad because we have to replace XCopyArea with a client side operation (XGet/PutImage) but frame elements are usually very small so this shouldn't hurt too badly. | |
Christian Marillat |
Change default stacking depth for docks. Make fullscreen windows have a higher stacking depth than normal. | |
Yoshiaki Kasahara |
There is no libglade-xgettext in libglade-2.x. How can I fix po/make-pot ? It seems that xgettext program can directly parse Glade input files. I have no knowledge how these things work, but how about the following patch? |
Accepted patches
Patch | Author | Description |
---|---|---|
Selene Scriven (ToyKeeper 10:30, 5 August 2008 (UTC)) |
Adds the tabbed version of "get-S" into themes/. | |
Selene Scriven (ToyKeeper 00:13, 7 August 2008 (UTC)) |
Adds the Elberg-tabbed theme to themes/ | |
Yuuki Harano and Rodrigo Gallardo |
~/.sawfishrc: (setq test-font1 (get-font-typed "pango" "Arial Italic 8")) (setq test-font2 (get-font-typed "pango" "Arial Italic 20")) (define (test-update w type) `(((background . "white") (foreground . "black") (text . ,window-name) (left-edge . 0) (right-edge . 0) (top-edge . -20) (height . 20) (font . ,(if (equal (window-class w) "XTerm") test-font2 test-font1)) )) ) (add-frame-style 'test test-update) ~/.sawfish/custom is empty. Then, text in title bar of xterm should be large font, and other title bar should be small font. But all is large. pango_context is created and set font with fontdesc in pango_load(), and used in pango_draw() without font changes. So, only one font is used. You should set font before using pango_context in pango_draw(). | |
Christopher Bratusek |
We discussed about a new sawfish-ui, but this will take longer ... So I'm going to optimize what we actually have. And this is the result. Tell me what you think.
| |
Fernando Carmona Varo |
This patch adds a new command to cycle to different groups, which is useful if combined with "cycle-group" (cycles to windows of the same group). Also, the flexibility of sawfish groups (by means of window-matching) can be an advantage when using this command.
| |
Alexey I. Froloff (ALT Linux) |
Translate custom options in sawfish-ui. | |
This patch improves Ian Zimmerman's iconify patch (IZIP hereafter). It was commited as rev4373. This patch restores the code in 'events.c' which was removed by IZIP, and put it in windows.c -> add_window. It replaces the addition by IZIP. Backgrounds[]1. Setting 'iconify->no' in Sawfish configurator does nothing, contrary to the common sense. So sawfish can iconify non-icon initial-state windows as a user setting, but it can't un-iconify iconified-init-states as a user setting. That's because sawfish's property had not provided distinction between 'unset' and 'set nil' until summar of 2008. Desirably it be fixed, but it is a bit tedious task, taking consistency check into account. I just postpone this issue, being satisfied to have recorded it at wiki. 2. There had been a subtlety, but in my opinion not a bug, which was pointed out by Ian Zimmerman. Ian's patch solves it. It's that even after the prob 1 is solved by hacking lisp codes, event.c -> map_request hinders the effort. That's because it calls 'iconify' after window matching, which is done in windows.c -> add_window. It was solved by IZIP. 3. Ian's patch works, but in ugly way. It uses XIconifyWindow which is for clients' use. As a result, a window which should be iconified appears once un-iconified, and it soon gets iconified. You can see something flash on your screen for a moment. It also takes away the focus. Such implementation can be a seed of bug. Also the wrong comment is added to the source: "There's a minor downside: rep doesn't know about this, so any hooks that might be operative for iconification don't get run..." No. Eventually sawfish iconifies the window, so hooks is called. 4. This is solved by this patch. It now iconifies the window in windows.c -> add_window, before 'before_add_window_hook' where matcher is called. Because add_window is called only from map_request, this is permissible. | ||
Dagfinn Ilmari Mannsåker (Uploaded by Christopher Bratusek) |
taken from: http://bugzilla.gnome.org/show_bug.cgi?id=71895 This patch allows that the user-defined 'xterm' command is also used, then viewing the info file. | |
Dagfinn Ilmari Mannsåker (Original Author) Christopher Bratusek (Update against 1.3.3) Timo Korvola (Simplyfied Code) |
taken from: http://bugzilla.gnome.org/show_bug.cgi?id=72238 This patch defines a new focus mode, the union of enter-only and click. This is useful when one wishes to focus a window that has the mouse pointer in it (this occurs frequently when the mouse pointer is not warped to focuesd/cycled windows) | |
Sir Raorn (ALT-Linux/Original Patch) Christopher Bratusek (Dropping *.jl.gnome/Additional Work) |
This patch fully drops *.jl.gnome. Currently sawfish's configure script knows --enable-gnome-widgets, which will load *.jl.gnome instead of *.jl.gtk (icon.jl.gnome instead of icon.jl.gtk for example), since *.jl.gnome depends on rep-libgnome, rep-libgnomeui, rep-libgnomecanvas (part of rep-gtk) which depend on deprecated libs, I want to drop those files. Instead make the *.jl.gtk default, also remove the .gtk suffix, which is unnessacary then, if there's only one possibility. I want to drop libgnome/libgnomeui/libgnomecanvas from rep-gtk, but I first need to drop those files from sawfish. | |
Alexey I. Froloff (ALT Linux) |
Without this patch sawfish does not accept connections from sawfish-ui and sawfish-client with error: $ sawfish-ui eval_req: Broken pipe *** Remote sawfish error: unknown error Broken by SVN revision 4275. | |
Christopher Bratusek |
This will (if warp-to-window-enabled and cycle-raise-windows are t) warp the pointer to windows while cycling. Since the former is disabled by default. It shouldn't make a difference for most people. | |
Fernando Carmona Varo |
This is a very simple patch but maybe a bit hard to make a decision about it too, since it's related to focus management and maybe changing the behavior could disturb someone accustomed to it. It has not been much time since I started using the focus enter-only mode. And I've found it is a quite nice way to work. I like the fact that the mouse follows the focus when I change windows to prevent focus loss. However, sometimes when you unmaximize a window the focus is lost. If you were previously working on the maximized window you often won't be able to know where the focus will end up.. I think this is kind of uncomfortable. I've added a "warp-if-necessary" at the end of the unmaximizing function. This will warp the mouse if it is out of the window and the "warp-to-window-enabled" option is enabled. However, I'm thinking that maybe some people accustomed to unmaximizing using the mouse might find uncomfortable to have the mouse warped when they click the maximized button, and yet they maybe still want enter-only focus and warping in the other cases. So, I'm thinking of maybe set a condition for the warping and only perform the action if the last-event was not a "Click" (by means of... (unless(string-match "Click" (event-name(last-event))) ...) However, as I normally maximize/unmaximize using the keyboard, I'm not sure if it would really be uncomfortable for such persons. So I'll just put here the patch and wait for your comments. In the worst case, this could be easily made a script too, since there's a handy hook in there. | |
Christopher Bratusek |
Add back the Smart placement modes "best-fit" "best-fit-group" and "first-fit-or-interactively" to the list of placement modes in SawfishUI | |
Andrea Vettorello |
This patch adds a new hook `before-slide-hook' which is called every time a window is moved using the keyboard. The code is executed before the actual move. I need an hook like this to fix stop-focus.jl mode, in particular it's used to update the mouse pointer position when moving windows with the keyboard. I've updated the documentation accordingly.
| |
Andrea Vettorello |
Brings back "stagger" and "off-center" placement modes. | |
Shobbit Mathur (Uploaded by Christopher Bratusek) |
Sawfish-ui is not "accessible" currently. Provide "atk" relation between widgets and corresponding labels. There are two patches one for sawfish and one for rep-gtk. | |
Helmut Eller <eller.helmut at gmail.com> |
This patch adds minimal support for the _NET_WM_USER_TIME hint. If this property is 0, Sawfish shouldn't give focus to the window when it is mapped. GTK uses this hint to implement gtk_window_set_focus_on_map. The patch looks at the The
| |
Christopher Bratusek / Michal Jaegermann |
Fix mxflat theme installation, by installing themes as gzip'ed tarball. (Patch by Michal Jaegermann, update for applying against trunk by me)
| |
Christopher Bratusek |
Print errors both on the screen and the standard-error | |
Christopher Bratusek |
This adds viewport-boundary (same as workspace-boundary, just for viewports)
| |
Christopher Bratusek |
Brings back all "missing" keybindings to sawfish-ui
| |
Christopher Bratusek |
Patch to (finally) close #103520 Adds two new button layouts to Crux: Complete and Complete (Inverse) Complete: close == shade iconify maximize menu Complete (Inverse): menu maximize iconify shade == close | |
Christopher Bratusek |
Updated version of: http://mail.gnome.org/archives/sawfish-list/2008-September/msg00067.html But this one also updates the header information (version, edition, mod-date, mod-month)
| |
This patch removes Control-l (printed ^L in less, emacs, etc) in source files. The affected files are:
COPYING and themes/mxflat/GPL are omitted. No other files contain them. (Of course excluding images and sounds.) Pros[]
I fall into both of these categories :). | ||
Fernando Carmona Varo (script by Andreas Bombe) |
This patch is based on Scrolling-viewport-switches script. It adds an option for switching viewports by moving a number of steps. The original script does not work, as it needs viewport.jlc to be reloaded (and reloading it unsets the script changes). So I thought it would be better to make a patch for it to make it work, being integrated. I also modified it a bit for slightly better performance (previously it was doing 2 unneeded calls). The maximum number of steps (slowest scroll) is set to 100. In my computer 100 is slow (well.. as intended) but works fine. However, it is maybe possible that older computers have problems, so maybe it's a good idea to test it and set a better number. The same can go for the default steps (5), I don't know if the feature would better be disabled by default (setting it to 1).
| |
Andrea Vettorello |
With this patch Sawfish honors aspect ratios when resizing a window interactively. | |
Jonathan Sambrook (Uploaded by Christopher Bratusek) |
A hacky patch for maximizing windows fullscreen in the xinerama | |
Timo Korvola |
Fixes things to work better with the Composite extension. Adds new functions window-obscured and stacking-visibility, which compute window visibility from the stacking order and do not rely on VisibilityNotify events. Modifies raise-lower and grow-pack to use these functions instead of window-visibility. VisibilityEvents appear unreliable when Composite is in use: every window is reported unobscured by window-visibility. This patch is also available via Git from branch stacking-visibility at http://www.elisanet.fi/tkorvola/sawfish.git and you should pull it from there because Wiki may have messed with the formatting here. | |
Teika kazura |
This patch adds a new hook `cycle-hook' which is called each time you cycle windows. The timing corresponds to the release of tab key in Windows. I have updated the patch recently. Formerly it was a plain hook, but it is now a window hook. The manual is written too. | |
Christopher Bratusek (Patch) tooar (Theme) |
Add the mxflat theme. it's fast, highliy configurable and supports a lot of buttons. Ideal for daily use and as showcase. Scott said, he might add tab support to it. | |
This patch defines two functions, `window-plist' and `window-prop-del'.
Both lack in the current sawfish. The idea is suggested by Timo Korvola in the page of Focus policy improvement. The author thanks him. | ||
Christopher Bratusek |
Recent versions of gnome-window-properties don't run sawfish-ui, because of the out-dated desktop file. This patch will also replace the capplet, which can then be safely removed from trunk. For GNOME-Session 2.23 this desktop file is also used, to set the default window-manager, via the /desktop/gnome/session/required-components/windowmanager gconf-key, since some user might think {s,}he has to set the value to the binary-name, we should rename the file from "Sawfish.desktop" to "sawfish.desktop", for consistency and to avoid confusion. | |
Christopher Bratusek |
Update the pot file, the po files and remove deprecated strings. | |
Fernando Carmona Varo and Guillermo S. Romero |
The keyboard support for menu items is not very good in sawfish in my opinion, making menus kind of ankward to use if you are not using a mouse. This patch activates some chars of the menu items to be used as shortcut keys. for example, if you have Alt+Space as a key-binding to popup the menu, you will be able to maximize the window pressing "Alt-Space x" ...or make it be always on top pressing "Alt-Space i u". Kind of key chain shortcuts. Also, the patch adds "Move" and "Resize" that were missing. | |
Mark Schreiber (Uploaded by Christopher Bratusek) |
taken from: http://bugzilla.gnome.org/show_bug.cgi?id=69520 Focus behaviour changed from 1.0 to 1.0.1-20020116: The behavior used to be such that when I invoke the command move-window-<up, right, down, left>(), the window I move would always get the new focus on the viewports it got moved to. The behavior in the new version of sawfish is such that the previously focused window on the viewport I move to gets the focus instead, and the window that I am moving loses focus (and seems to go to the back of the focus-stack). This makes it difficult to move a single window across many viewports, since I might start out with a galeon in the upper-right -- but end up with an rxvt in the lower-left. | |
Christopher Bratusek |
We use SVN now. So no need for .cvsignore files. | |
Christopher Bratusek |
Major cleanup for Sawfish's c-part. Fixes most of the compiler-warnings and makes possible to build sawfish with CFLAGS="-Wall -ansi -pedantic" (previously: 68 (and build failed at fonts.c) / now: 9). Ok building with CFLAGS="-Wall -ansi -pedantic" still fails, but this time it's not Sawfish's fault, it's the fault of two librep headers. I'll therefore make clean-ups to librep and rep-gtk, too (not before 2 or 3 weeks, so be patient). | |
Andrea Vettorello |
I can't find in the EWMH specs how should be managed a window with _NET_WM_WINDOW_TYPE_TOOLBAR property enabled, but in this email http://mail.gnome.org/archives/wm-spec-list/2002-July/msg00002.html is stated that a toolbar should be decorated by the toolkit not the window manager. | |
This patch improves the treatment of the boolean property of the window. It modifies the function `window-get', by adding an optional argument. It has no side effect (I mean the ordinary, not lisp side effect), not requiring any fix in existing codes. The author thanks Tkorvola for the useful comment. Usage[]
The function `window-get' returns the value of the property PROP of WINDOW. The current version of `window-get' returns nil either when the property value is nil, or the property is not set at all. There isn't a way to distinguish these two different situations. In this patch, the function can take an optional argument CHECKER. If it is non-nil and PROP is unset, then it returns CHECKER. Notes[]As a practical application of this patch, see my another patch focus policy improvement.
Thank you for reading. | ||
Christopher Bratusek |
Bump version requirements: - pango 1.16 - gtk 2.6 - gdk 2.6 Also includes the version bump for sawfish to 1.3.4 | |
Timo Korvola |
The Crux theme uses miniature versions of client icons in the window menu buttons. The scaled pixmaps are cached and are not updated if a client changes its icon. This patch fixes that. You can also get this patch with Git from http://www.elisanet.fi/tkorvola/sawfish.git, branch icon-refresh. | |
Christopher Bratusek |
Adds a POTFILE.in to make intltool-update work. This patch is needed by my updated Fix make-pot patch. | |
Christopher Bratusek |
Due to a wrong command the make-pot script is unable to update the pot file. The updated version of this patch depends on this patch: Add POTFILES.in Following patch fixes the issue. | |
Harald van Dijk |
This patch fixes the parallel build bug that can result in:
When make is run with -j2 (or higher), it's possible that src/fake-libexec gets executed before the targets of the symbolic links it is supposed to create exist. src/.libexec will be incomplete if this happens, and make fails in lisp. This patch tells make to not run src/fake-libexec before the build is ready. | |
Ian Dall (Uploaded by Christopher Bratusek) |
taken from: http://bugzilla.gnome.org/show_bug.cgi?id=520040 The Spec-file shipped with Sawfish is useless, since some keywords have changed. This patch solves that issue. | |
Timo Korvola |
Patch against 1.3.2. To illustrate the difference, run Sawfish in a non-UTF-8 locale but with a title font capable of displaying Unicode (I use Freemono), start a uxterm and gucharmap, then try xterm -T 'funny characters' and konsole -T 'funny characters', where the funny characters are not representable in the locale of Sawfish. With the Net_wm_names patch, only konsole gets its title rendered correctly but xterm does not. With the attached patch, both windows get correct titles. | |
Harald van Dijk and Timo Korvola |
When using a theme which updates itself as window titles change, such as the default theme Crux, the updates happen at the wrong time, and the title bar ends up messed up. When the netwm patch is applied, you can easily see this by normal browsing in Mozilla Firefox, or editing a document in editors that update the title to include "*" or "modified" when you start typing. This happens because the themes look for updates to the WM_NAME property, but sawfish now reads the _NET_WM_NAME property as well, so themes should check for updates to that too. This patch updates the default themes, and to prevent custom themes (not distributed with sawfish itself) from breaking, treats | |
Timo Korvola |
Another KDE system tray fix. The diff is against 1.3.2. The essential content is the one-line change in wm-spec.jl but I am bundling it with some other cleanups. As of 3.5.8, KDE has still not completely replaced their old wm-dependent system tray protocol with the freedesktop.org one. They just kluged it: KDE apps continue to use the old protocol, but a kded module called kdetrayproxy tries to perform the part of the wm in that protocol and docks the tray icons using the freedesktop.org protocol. It turned out that kdetrayproxy watches for new windows not by monitoring MapNotify events but by monitoring changes in the _NET_CLIENT_LIST root window property. Sawfish added windows to that list at a very early stage, before they had even been decorated. The result was kdetrayproxy being confused by the events caused by Sawfish decorating the window and Sawfish being confused by interference from kdetrayproxy. This patch delays the update of _NET_CLIENT_LIST to map-notify-hook. At that time the new window is already mapped (unless it starts iconic - map-notify-hook is executed even in that case). This patch also fixes a potential problem of reparent-notify-hook getting called with a removed window. I have never seen anyone use that hook though. I also modified unmap_notify so that removal of WM_STATE is the very last action there. That property change indicates to the client that we are done processing the window withdrawal. The client may then reuse the window, e.g., remap it. You can also get this patch with Git from http://www.elisanet.fi/tkorvola/sawfish.git, branch kde-tray-fix-2. | |
Fuchur |
This patch fix window placement with multihead setup. Look here | |
Harald van Dijk |
Don't grab focus on KDE menus. | |
Timo Korvola |
Ignore out of bounds _NET_CURRENT_DESKTOP requests silently. KDE system tray apps have a nasty habit of sending _NET_CURRENT_DESKTOP client messages with a parameter of -1, which confuses Sawfish. This patch adds some bounds checking. | |
Rodrigo Gallardo <rodrigo@nul-unu.com> |
This patch makes sawfish use the _NET_WM_NAME properties for window names, as mandated by the EWMH spec (http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html) This patch is a bit more invasive that it seems requiered, because, to make it work properly in my system I had to make sawfish assume all strings are UTF8 encoded (see the pieces of the patch touching fonts.c) Please test it and tell me what breaks. If there are no objections to the substance of the patch, I'd still like some feedback on what to do with text rendering with "normal" xlfd fonts. | |
Timo Korvola |
This fixes reparenting fights that occur between Sawfish and the KDE system tray. Both try to reparent system tray icons as they are mapped, leading to a lot of flicker and an unpredictable end result. After the patch, Sawfish will reparent windows to their frames at MapRequest time, never at MapNotify. Also, windows that are unmapped by the client should normally be reparented to the root, but if the unmapping was caused by the window being reparented by some other client, problems ensue. So we check for that. The patch also fixes an exotic race condition triggered at least with old versions of Monodevelop #308155 and Gnome Power Manager. Current versions of both programs don't expose the issue anymore. It was discussed on the mailing list on february 2007 and the follow up march 2007. There's a proof of concept available that should demonstrate the bug, a window isn't decorated if unmapped during the first reparenting. | |
Yoshiaki Kasahara |
When I was trying to compile the source from svn on my FreeBSD box, I noticed one of port-local patches wasn't incorporated into the svn tree The following patch is for the stock 1.3 release, but it should be applied to the svn source, too. | |
Michal Jaegermann |
I tried to rebuild 1.3.1 on "CentOS release 4.5" installation and run into a minor problem that although a code in src/frames.c checks if 'ShapeInput' is available this is not the case in src/events.c. The following patch solves the issue: | |
Sven Schoenung |
The window opened by the | |
Luis Rodrigo Gallardo Cruz |
Sawfish saves the size of the desktop window, and although nautilus requests the widget to be the same size as your screen it's forced to the size that sawfish saved.. This patch is currently applied in the Debian package. | |
Rodrigo Gallardo |
The current Sawfish.desktop file does not comply with the freedesktop.org standard. | |
GSR |
Fixes select-workspace in lisp/sawfish/wm/workspace.jl to make sure it uses key params in its call to select-workspace* This patch is currently applied in the Debian package. debian: http://bugs.debian.org/413584 | |
Thadeu Lima de Souza Cascardo <cascardo@minaslivre.org> |
This is a patch for Debian bug #406559, and possibly #403100, too. It seems these are ultimately caused by Xlib "helpfully" converting 32 bit messages from the server to the client's native long type, which is bad for sawfish since rep does distinguish these. A longer description can be found in the patch's author's message in [2]. |
Accepted for 1.5.0
Patch | Author | Description |
---|---|---|
Christopher Bratusek |
We discussed about a new sawfish-ui, but this will take longer ... So I'm going to optimize what we actually have. And this is the result. Tell me what you think.
| |
Fernando Carmona Varo |
This patch adds a new command to cycle to different groups, which is useful if combined with "cycle-group" (cycles to windows of the same group). Also, the flexibility of sawfish groups (by means of window-matching) can be an advantage when using this command.
| |
Alexey I. Froloff (ALT Linux) |
Translate custom options in sawfish-ui. | |
This patch improves Ian Zimmerman's iconify patch (IZIP hereafter). It was commited as rev4373. This patch restores the code in 'events.c' which was removed by IZIP, and put it in windows.c -> add_window. It replaces the addition by IZIP. Backgrounds[]1. Setting 'iconify->no' in Sawfish configurator does nothing, contrary to the common sense. So sawfish can iconify non-icon initial-state windows as a user setting, but it can't un-iconify iconified-init-states as a user setting. That's because sawfish's property had not provided distinction between 'unset' and 'set nil' until summar of 2008. Desirably it be fixed, but it is a bit tedious task, taking consistency check into account. I just postpone this issue, being satisfied to have recorded it at wiki. 2. There had been a subtlety, but in my opinion not a bug, which was pointed out by Ian Zimmerman. Ian's patch solves it. It's that even after the prob 1 is solved by hacking lisp codes, event.c -> map_request hinders the effort. That's because it calls 'iconify' after window matching, which is done in windows.c -> add_window. It was solved by IZIP. 3. Ian's patch works, but in ugly way. It uses XIconifyWindow which is for clients' use. As a result, a window which should be iconified appears once un-iconified, and it soon gets iconified. You can see something flash on your screen for a moment. It also takes away the focus. Such implementation can be a seed of bug. Also the wrong comment is added to the source: "There's a minor downside: rep doesn't know about this, so any hooks that might be operative for iconification don't get run..." No. Eventually sawfish iconifies the window, so hooks is called. 4. This is solved by this patch. It now iconifies the window in windows.c -> add_window, before 'before_add_window_hook' where matcher is called. Because add_window is called only from map_request, this is permissible. | ||
Sir Raorn (ALT-Linux/Original Patch) Christopher Bratusek (Dropping *.jl.gnome/Additional Work) |
This patch fully drops *.jl.gnome. Currently sawfish's configure script knows --enable-gnome-widgets, which will load *.jl.gnome instead of *.jl.gtk (icon.jl.gnome instead of icon.jl.gtk for example), since *.jl.gnome depends on rep-libgnome, rep-libgnomeui, rep-libgnomecanvas (part of rep-gtk) which depend on deprecated libs, I want to drop those files. Instead make the *.jl.gtk default, also remove the .gtk suffix, which is unnessacary then, if there's only one possibility. I want to drop libgnome/libgnomeui/libgnomecanvas from rep-gtk, but I first need to drop those files from sawfish. | |
Alexey I. Froloff (ALT Linux) |
Without this patch sawfish does not accept connections from sawfish-ui and sawfish-client with error: $ sawfish-ui eval_req: Broken pipe *** Remote sawfish error: unknown error Broken by SVN revision 4275. | |
Christopher Bratusek |
This will (if warp-to-window-enabled and cycle-raise-windows are t) warp the pointer to windows while cycling. Since the former is disabled by default. It shouldn't make a difference for most people. | |
Fernando Carmona Varo |
This is a very simple patch but maybe a bit hard to make a decision about it too, since it's related to focus management and maybe changing the behavior could disturb someone accustomed to it. It has not been much time since I started using the focus enter-only mode. And I've found it is a quite nice way to work. I like the fact that the mouse follows the focus when I change windows to prevent focus loss. However, sometimes when you unmaximize a window the focus is lost. If you were previously working on the maximized window you often won't be able to know where the focus will end up.. I think this is kind of uncomfortable. I've added a "warp-if-necessary" at the end of the unmaximizing function. This will warp the mouse if it is out of the window and the "warp-to-window-enabled" option is enabled. However, I'm thinking that maybe some people accustomed to unmaximizing using the mouse might find uncomfortable to have the mouse warped when they click the maximized button, and yet they maybe still want enter-only focus and warping in the other cases. So, I'm thinking of maybe set a condition for the warping and only perform the action if the last-event was not a "Click" (by means of... (unless(string-match "Click" (event-name(last-event))) ...) However, as I normally maximize/unmaximize using the keyboard, I'm not sure if it would really be uncomfortable for such persons. So I'll just put here the patch and wait for your comments. In the worst case, this could be easily made a script too, since there's a handy hook in there. |
Accepted for 1.3.5
Patch | Author | Description |
---|---|---|
Christopher Bratusek |
Add back the Smart placement modes "best-fit" "best-fit-group" and "first-fit-or-interactively" to the list of placement modes in SawfishUI | |
Andrea Vettorello |
This patch adds a new hook `before-slide-hook' which is called every time a window is moved using the keyboard. The code is executed before the actual move. I need an hook like this to fix stop-focus.jl mode, in particular it's used to update the mouse pointer position when moving windows with the keyboard. I've updated the documentation accordingly.
| |
Andrea Vettorello |
Brings back "stagger" and "off-center" placement modes. | |
Shobbit Mathur (Uploaded by Christopher Bratusek) |
Sawfish-ui is not "accessible" currently. Provide "atk" relation between widgets and corresponding labels. There are two patches one for sawfish and one for rep-gtk. | |
Helmut Eller <eller.helmut at gmail.com> |
This patch adds minimal support for the _NET_WM_USER_TIME hint. If this property is 0, Sawfish shouldn't give focus to the window when it is mapped. GTK uses this hint to implement gtk_window_set_focus_on_map. The patch looks at the The
| |
Christopher Bratusek / Michal Jaegermann |
Fix mxflat theme installation, by installing themes as gzip'ed tarball. (Patch by Michal Jaegermann, update for applying against trunk by me)
| |
Christopher Bratusek |
Print errors both on the screen and the standard-error | |
Christopher Bratusek |
This adds viewport-boundary (same as workspace-boundary, just for viewports)
| |
Christopher Bratusek |
Brings back all "missing" keybindings to sawfish-ui
| |
Christopher Bratusek |
Patch to (finally) close #103520 Adds two new button layouts to Crux: Complete and Complete (Inverse) Complete: close == shade iconify maximize menu Complete (Inverse): menu maximize iconify shade == close | |
Christopher Bratusek |
Updated version of: http://mail.gnome.org/archives/sawfish-list/2008-September/msg00067.html But this one also updates the header information (version, edition, mod-date, mod-month)
| |
This patch removes Control-l (printed ^L in less, emacs, etc) in source files. The affected files are:
COPYING and themes/mxflat/GPL are omitted. No other files contain them. (Of course excluding images and sounds.) Pros[]
I fall into both of these categories :). | ||
Fernando Carmona Varo (script by Andreas Bombe) |
This patch is based on Scrolling-viewport-switches script. It adds an option for switching viewports by moving a number of steps. The original script does not work, as it needs viewport.jlc to be reloaded (and reloading it unsets the script changes). So I thought it would be better to make a patch for it to make it work, being integrated. I also modified it a bit for slightly better performance (previously it was doing 2 unneeded calls). The maximum number of steps (slowest scroll) is set to 100. In my computer 100 is slow (well.. as intended) but works fine. However, it is maybe possible that older computers have problems, so maybe it's a good idea to test it and set a better number. The same can go for the default steps (5), I don't know if the feature would better be disabled by default (setting it to 1).
| |
Andrea Vettorello |
With this patch Sawfish honors aspect ratios when resizing a window interactively. |
Accepted for 1.3.4
Patch | Author | Description |
---|---|---|
Selene Scriven (ToyKeeper 10:30, 5 August 2008 (UTC)) |
Adds the tabbed version of "get-S" into themes/. | |
Selene Scriven (ToyKeeper 00:13, 7 August 2008 (UTC)) |
Adds the Elberg-tabbed theme to themes/ | |
Dagfinn Ilmari Mannsåker (Uploaded by Christopher Bratusek) |
taken from: http://bugzilla.gnome.org/show_bug.cgi?id=71895 This patch allows that the user-defined 'xterm' command is also used, then viewing the info file. | |
Dagfinn Ilmari Mannsåker (Original Author) Christopher Bratusek (Update against 1.3.3) Timo Korvola (Simplyfied Code) |
taken from: http://bugzilla.gnome.org/show_bug.cgi?id=72238 This patch defines a new focus mode, the union of enter-only and click. This is useful when one wishes to focus a window that has the mouse pointer in it (this occurs frequently when the mouse pointer is not warped to focuesd/cycled windows) | |
Jonathan Sambrook (Uploaded by Christopher Bratusek) |
A hacky patch for maximizing windows fullscreen in the xinerama | |
Timo Korvola |
Fixes things to work better with the Composite extension. Adds new functions window-obscured and stacking-visibility, which compute window visibility from the stacking order and do not rely on VisibilityNotify events. Modifies raise-lower and grow-pack to use these functions instead of window-visibility. VisibilityEvents appear unreliable when Composite is in use: every window is reported unobscured by window-visibility. This patch is also available via Git from branch stacking-visibility at http://www.elisanet.fi/tkorvola/sawfish.git and you should pull it from there because Wiki may have messed with the formatting here. | |
Teika kazura |
This patch adds a new hook `cycle-hook' which is called each time you cycle windows. The timing corresponds to the release of tab key in Windows. I have updated the patch recently. Formerly it was a plain hook, but it is now a window hook. The manual is written too. | |
Christopher Bratusek (Patch) tooar (Theme) |
Add the mxflat theme. it's fast, highliy configurable and supports a lot of buttons. Ideal for daily use and as showcase. Scott said, he might add tab support to it. | |
This patch defines two functions, `window-plist' and `window-prop-del'.
Both lack in the current sawfish. The idea is suggested by Timo Korvola in the page of Focus policy improvement. The author thanks him. | ||
Christopher Bratusek |
Recent versions of gnome-window-properties don't run sawfish-ui, because of the out-dated desktop file. This patch will also replace the capplet, which can then be safely removed from trunk. For GNOME-Session 2.23 this desktop file is also used, to set the default window-manager, via the /desktop/gnome/session/required-components/windowmanager gconf-key, since some user might think {s,}he has to set the value to the binary-name, we should rename the file from "Sawfish.desktop" to "sawfish.desktop", for consistency and to avoid confusion. | |
Christopher Bratusek |
Update the pot file, the po files and remove deprecated strings. | |
Fernando Carmona Varo and Guillermo S. Romero |
The keyboard support for menu items is not very good in sawfish in my opinion, making menus kind of ankward to use if you are not using a mouse. This patch activates some chars of the menu items to be used as shortcut keys. for example, if you have Alt+Space as a key-binding to popup the menu, you will be able to maximize the window pressing "Alt-Space x" ...or make it be always on top pressing "Alt-Space i u". Kind of key chain shortcuts. Also, the patch adds "Move" and "Resize" that were missing. | |
Mark Schreiber (Uploaded by Christopher Bratusek) |
taken from: http://bugzilla.gnome.org/show_bug.cgi?id=69520 Focus behaviour changed from 1.0 to 1.0.1-20020116: The behavior used to be such that when I invoke the command move-window-<up, right, down, left>(), the window I move would always get the new focus on the viewports it got moved to. The behavior in the new version of sawfish is such that the previously focused window on the viewport I move to gets the focus instead, and the window that I am moving loses focus (and seems to go to the back of the focus-stack). This makes it difficult to move a single window across many viewports, since I might start out with a galeon in the upper-right -- but end up with an rxvt in the lower-left. | |
Christopher Bratusek |
We use SVN now. So no need for .cvsignore files. | |
Christopher Bratusek |
Major cleanup for Sawfish's c-part. Fixes most of the compiler-warnings and makes possible to build sawfish with CFLAGS="-Wall -ansi -pedantic" (previously: 68 (and build failed at fonts.c) / now: 9). Ok building with CFLAGS="-Wall -ansi -pedantic" still fails, but this time it's not Sawfish's fault, it's the fault of two librep headers. I'll therefore make clean-ups to librep and rep-gtk, too (not before 2 or 3 weeks, so be patient). | |
Andrea Vettorello |
I can't find in the EWMH specs how should be managed a window with _NET_WM_WINDOW_TYPE_TOOLBAR property enabled, but in this email http://mail.gnome.org/archives/wm-spec-list/2002-July/msg00002.html is stated that a toolbar should be decorated by the toolkit not the window manager. | |
This patch improves the treatment of the boolean property of the window. It modifies the function `window-get', by adding an optional argument. It has no side effect (I mean the ordinary, not lisp side effect), not requiring any fix in existing codes. The author thanks Tkorvola for the useful comment. Usage[]
The function `window-get' returns the value of the property PROP of WINDOW. The current version of `window-get' returns nil either when the property value is nil, or the property is not set at all. There isn't a way to distinguish these two different situations. In this patch, the function can take an optional argument CHECKER. If it is non-nil and PROP is unset, then it returns CHECKER. Notes[]As a practical application of this patch, see my another patch focus policy improvement.
Thank you for reading. | ||
Christopher Bratusek |
Bump version requirements: - pango 1.16 - gtk 2.6 - gdk 2.6 Also includes the version bump for sawfish to 1.3.4 | |
Timo Korvola |
The Crux theme uses miniature versions of client icons in the window menu buttons. The scaled pixmaps are cached and are not updated if a client changes its icon. This patch fixes that. You can also get this patch with Git from http://www.elisanet.fi/tkorvola/sawfish.git, branch icon-refresh. | |
Christopher Bratusek |
Adds a POTFILE.in to make intltool-update work. This patch is needed by my updated Fix make-pot patch. | |
Christopher Bratusek |
Due to a wrong command the make-pot script is unable to update the pot file. The updated version of this patch depends on this patch: Add POTFILES.in Following patch fixes the issue. | |
Harald van Dijk |
This patch fixes the parallel build bug that can result in:
When make is run with -j2 (or higher), it's possible that src/fake-libexec gets executed before the targets of the symbolic links it is supposed to create exist. src/.libexec will be incomplete if this happens, and make fails in lisp. This patch tells make to not run src/fake-libexec before the build is ready. | |
Ian Dall (Uploaded by Christopher Bratusek) |
taken from: http://bugzilla.gnome.org/show_bug.cgi?id=520040 The Spec-file shipped with Sawfish is useless, since some keywords have changed. This patch solves that issue. |
Accepted for 1.3.3
Patch | Author | Description |
---|---|---|
Yuuki Harano and Rodrigo Gallardo |
~/.sawfishrc: (setq test-font1 (get-font-typed "pango" "Arial Italic 8")) (setq test-font2 (get-font-typed "pango" "Arial Italic 20")) (define (test-update w type) `(((background . "white") (foreground . "black") (text . ,window-name) (left-edge . 0) (right-edge . 0) (top-edge . -20) (height . 20) (font . ,(if (equal (window-class w) "XTerm") test-font2 test-font1)) )) ) (add-frame-style 'test test-update) ~/.sawfish/custom is empty. Then, text in title bar of xterm should be large font, and other title bar should be small font. But all is large. pango_context is created and set font with fontdesc in pango_load(), and used in pango_draw() without font changes. So, only one font is used. You should set font before using pango_context in pango_draw(). | |
Timo Korvola |
Patch against 1.3.2. To illustrate the difference, run Sawfish in a non-UTF-8 locale but with a title font capable of displaying Unicode (I use Freemono), start a uxterm and gucharmap, then try xterm -T 'funny characters' and konsole -T 'funny characters', where the funny characters are not representable in the locale of Sawfish. With the Net_wm_names patch, only konsole gets its title rendered correctly but xterm does not. With the attached patch, both windows get correct titles. | |
Harald van Dijk and Timo Korvola |
When using a theme which updates itself as window titles change, such as the default theme Crux, the updates happen at the wrong time, and the title bar ends up messed up. When the netwm patch is applied, you can easily see this by normal browsing in Mozilla Firefox, or editing a document in editors that update the title to include "*" or "modified" when you start typing. This happens because the themes look for updates to the WM_NAME property, but sawfish now reads the _NET_WM_NAME property as well, so themes should check for updates to that too. This patch updates the default themes, and to prevent custom themes (not distributed with sawfish itself) from breaking, treats | |
Timo Korvola |
Another KDE system tray fix. The diff is against 1.3.2. The essential content is the one-line change in wm-spec.jl but I am bundling it with some other cleanups. As of 3.5.8, KDE has still not completely replaced their old wm-dependent system tray protocol with the freedesktop.org one. They just kluged it: KDE apps continue to use the old protocol, but a kded module called kdetrayproxy tries to perform the part of the wm in that protocol and docks the tray icons using the freedesktop.org protocol. It turned out that kdetrayproxy watches for new windows not by monitoring MapNotify events but by monitoring changes in the _NET_CLIENT_LIST root window property. Sawfish added windows to that list at a very early stage, before they had even been decorated. The result was kdetrayproxy being confused by the events caused by Sawfish decorating the window and Sawfish being confused by interference from kdetrayproxy. This patch delays the update of _NET_CLIENT_LIST to map-notify-hook. At that time the new window is already mapped (unless it starts iconic - map-notify-hook is executed even in that case). This patch also fixes a potential problem of reparent-notify-hook getting called with a removed window. I have never seen anyone use that hook though. I also modified unmap_notify so that removal of WM_STATE is the very last action there. That property change indicates to the client that we are done processing the window withdrawal. The client may then reuse the window, e.g., remap it. You can also get this patch with Git from http://www.elisanet.fi/tkorvola/sawfish.git, branch kde-tray-fix-2. |
Accepted for 1.3.2
Patch | Author | Description |
---|---|---|
Fuchur |
This patch fix window placement with multihead setup. Look here | |
Harald van Dijk |
Don't grab focus on KDE menus. | |
Timo Korvola |
Ignore out of bounds _NET_CURRENT_DESKTOP requests silently. KDE system tray apps have a nasty habit of sending _NET_CURRENT_DESKTOP client messages with a parameter of -1, which confuses Sawfish. This patch adds some bounds checking. | |
Rodrigo Gallardo <rodrigo@nul-unu.com> |
This patch makes sawfish use the _NET_WM_NAME properties for window names, as mandated by the EWMH spec (http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html) This patch is a bit more invasive that it seems requiered, because, to make it work properly in my system I had to make sawfish assume all strings are UTF8 encoded (see the pieces of the patch touching fonts.c) Please test it and tell me what breaks. If there are no objections to the substance of the patch, I'd still like some feedback on what to do with text rendering with "normal" xlfd fonts. | |
Timo Korvola |
This fixes reparenting fights that occur between Sawfish and the KDE system tray. Both try to reparent system tray icons as they are mapped, leading to a lot of flicker and an unpredictable end result. After the patch, Sawfish will reparent windows to their frames at MapRequest time, never at MapNotify. Also, windows that are unmapped by the client should normally be reparented to the root, but if the unmapping was caused by the window being reparented by some other client, problems ensue. So we check for that. The patch also fixes an exotic race condition triggered at least with old versions of Monodevelop #308155 and Gnome Power Manager. Current versions of both programs don't expose the issue anymore. It was discussed on the mailing list on february 2007 and the follow up march 2007. There's a proof of concept available that should demonstrate the bug, a window isn't decorated if unmapped during the first reparenting. | |
Sven Schoenung |
The window opened by the | |
Luis Rodrigo Gallardo Cruz |
Sawfish saves the size of the desktop window, and although nautilus requests the widget to be the same size as your screen it's forced to the size that sawfish saved.. This patch is currently applied in the Debian package. | |
Rodrigo Gallardo |
The current Sawfish.desktop file does not comply with the freedesktop.org standard. | |
GSR |
Fixes select-workspace in lisp/sawfish/wm/workspace.jl to make sure it uses key params in its call to select-workspace* This patch is currently applied in the Debian package. debian: http://bugs.debian.org/413584 | |
Thadeu Lima de Souza Cascardo <cascardo@minaslivre.org> |
This is a patch for Debian bug #406559, and possibly #403100, too. It seems these are ultimately caused by Xlib "helpfully" converting 32 bit messages from the server to the client's native long type, which is bad for sawfish since rep does distinguish these. A longer description can be found in the patch's author's message in [3]. |
Accepted for 1.3.1
Patch | Author | Description |
---|---|---|
Yoshiaki Kasahara |
When I was trying to compile the source from svn on my FreeBSD box, I noticed one of port-local patches wasn't incorporated into the svn tree The following patch is for the stock 1.3 release, but it should be applied to the svn source, too. | |
Michal Jaegermann |
I tried to rebuild 1.3.1 on "CentOS release 4.5" installation and run into a minor problem that although a code in src/frames.c checks if 'ShapeInput' is available this is not the case in src/events.c. The following patch solves the issue: |
Accepted Patches
Patch | Author | Description |
---|---|---|
Harald van Dijk |
When a window grabs focus, sawfish doesn't treat it as a "focus out" of the old window, but does treat it as a "focus in" of the new one. This causes problems with Global Menu Bar for GNOME: when opening a menu, the menu grabs keyboard input. In sawfish, as a result, the GNOME top panel (or wherever you have placed the menu) becomes focused, and the menu bar is updated to reflect that no application window has focus. In short, the menu bar is completely unusable. The patch made focus_in ignore the same events that focus_out already ignores, but was updated after comments on the mailing list to only affect the _NET_ACTIVE_WINDOW property so that all other focus-related functions (including updating the window frame) get called, and to update mode_to_sym to handle NotifyWhileGrabbed events. Note that even with this patch, it is necessary to force the GNOME panel to "never focus". The panel is focusable in sawfish and fluxbox, which causes the same problem even without opening menus, but that is not a bug in the window manager, and easily worked around using for example Window Rules from the Sawfish Configurator. |