Quantcast Patches (all) - Sawfish
Recent changes Random page
GAMING
Technology
 
Gaming
Entertainment
Science Fiction
Biggest wikis
Hobbies
Music
See more...

Patches (all)

From Sawfish

Jump to: navigation, search

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.

How to prepare a patch

To add a new patch (licensed under GPLv2), write the name and click below

To review a submitted patch please try it and
  • Write your verdict, using one of wiki templates below:
    • {{yes}} ( Image:Yes.png vote: yes. ),
    • {{no}} ( Image:No_.png vote: no. ),
    • {{wtf}} ( Image:Wtf.png vote: pondering. ),
    • {{try}} ( Image:Try.png vote: let's try in experimental. ) and
    • {{suspend}} ( Image:Suspend.png wait for next release. ).
  • 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
Accepted for 1.3.1 Accepted for 1.3.2 Accepted for 1.3.3 Accepted for 1.3.4 Accepted patches Rejected patches Submitted patches Suspended patches Missing patches


[edit] Accepted for 1.3.1

PatchAuthorDescription

Buffer overflow in fonts.c

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.

ShapeInput in events.c

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:

[edit] Accepted for 1.3.2

PatchAuthorDescription

Multihead placed patch

Fuchur

This patch fix window placement with multihead setup. Look here

KDE menus focus

Harald van Dijk

Don't grab focus on KDE menus.

KDE system tray fix

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.

Net wm properties

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.

Reparenting cleanup

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.

Blank lines in prompt

Sven Schoenung

The window opened by the prompt function shows two blank lines before the prompt even when they aren't needed.

Noprop desktop save

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.

bugzilla bugreport

debian bugreport

Update desktop file

Rodrigo Gallardo

The current Sawfish.desktop file does not comply with the freedesktop.org standard.

Fix select workspace

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

Fix Xlib client message

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 [1].

[edit] Accepted for 1.3.3

PatchAuthorDescription

Utf 8 names fix

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.

See this post and this post

Pango draw() ignores font

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().

Titlebar updates

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 (call-after-property-changed 'WM_NAME ...) as a special case that should also check for _NEW_WM_NAME.

KDE tray fix 2

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.

[edit] Accepted for 1.3.4

PatchAuthorDescription

Maximize fullscreen xinerama

Jonathan Sambrook (Uploaded by Christopher Bratusek)

A hacky patch for maximizing windows fullscreen in the xinerama

Stacking-visibility

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.

Add Elberg-tabbed theme

Scott Scriven (ToyKeeper 00:13, 7 August 2008 (UTC))

Adds the Elberg-tabbed theme to themes/

Cycle-hook

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.

Add mxflat theme

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.

Window prop list & prop del

Teika kazura and Timo Korvola

This patch defines two functions, `window-plist' and `window-prop-del'.

  • `window-plist' returns the property list of a window.
  • `window-prop-del' deletes a property of a window.

Both lack in the current sawfish.

The idea is suggested by Timo Korvola in the page of Focus policy improvement. The author thanks him.

Add get-S-tabbed theme

Scott Scriven (ToyKeeper 10:30, 5 August 2008 (UTC))

Adds the tabbed version of "get-S" into themes/.

Update desktop file (again)

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.

L10n update

Christopher Bratusek

Update the pot file, the po files and remove deprecated strings.

Window menu item shortcuts

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.

Keep Focus on move-window- direction ()

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.

Remove .cvsignore files

Christopher Bratusek

We use SVN now. So no need for .cvsignore files.

Major C-Part Clean-Up

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).

Decorations toolbar windows

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.

Negative-property-p

Teika kazura

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.

[edit] Usage

(window-get window prop &optional checker)

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.

[edit] Notes

As a practical application of this patch, see my another patch focus policy improvement.

If this patch is to be accepted, then I would write the manual entry, too. The patch for the manual is now included. -Teika kazura 05:24, 25 June 2008 (UTC)

Thank you for reading.

Configure update

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

Refresh icons

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.

Enter-Click Focus Mode

Dagfinn I. Mannsåke (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)

Add POTFILES.in

Christopher Bratusek

Adds a POTFILE.in to make intltool-update work.

This patch is needed by my updated Fix make-pot patch.

Fix make-pot

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.

Parallel make patch

Harald van Dijk

This patch fixes the parallel build bug that can result in:

(compiling sawfish/wm/commands/x-cycle.jl)
error--> (file-error "No such file or directory" "sawfish/wm/util/x")

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.

Update the Spec-file

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.

Selfdefine xterm command

Dagfinn I. 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.

[edit] Accepted patches

PatchAuthorDescription

Maximize fullscreen xinerama

Jonathan Sambrook (Uploaded by Christopher Bratusek)

A hacky patch for maximizing windows fullscreen in the xinerama

Stacking-visibility

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.

Add Elberg-tabbed theme

Scott Scriven (ToyKeeper 00:13, 7 August 2008 (UTC))

Adds the Elberg-tabbed theme to themes/

Cycle-hook

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.

Add mxflat theme

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.

Window prop list & prop del

Teika kazura and Timo Korvola

This patch defines two functions, `window-plist' and `window-prop-del'.

  • `window-plist' returns the property list of a window.
  • `window-prop-del' deletes a property of a window.

Both lack in the current sawfish.

The idea is suggested by Timo Korvola in the page of Focus policy improvement. The author thanks him.

Add get-S-tabbed theme

Scott Scriven (ToyKeeper 10:30, 5 August 2008 (UTC))

Adds the tabbed version of "get-S" into themes/.

Update desktop file (again)

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.

L10n update

Christopher Bratusek

Update the pot file, the po files and remove deprecated strings.

Window menu item shortcuts

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.

Keep Focus on move-window- direction ()

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.

Remove .cvsignore files

Christopher Bratusek

We use SVN now. So no need for .cvsignore files.

Major C-Part Clean-Up

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).

Decorations toolbar windows

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.

Negative-property-p

Teika kazura

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.

[edit] Usage

(window-get window prop &optional checker)

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.

[edit] Notes

As a practical application of this patch, see my another patch focus policy improvement.

If this patch is to be accepted, then I would write the manual entry, too. The patch for the manual is now included. -Teika kazura 05:24, 25 June 2008 (UTC)

Thank you for reading.

Configure update

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

Refresh icons

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.

Enter-Click Focus Mode

Dagfinn I. Mannsåke (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)

Add POTFILES.in

Christopher Bratusek

Adds a POTFILE.in to make intltool-update work.

This patch is needed by my updated Fix make-pot patch.

Fix make-pot

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.

Parallel make patch

Harald van Dijk

This patch fixes the parallel build bug that can result in:

(compiling sawfish/wm/commands/x-cycle.jl)
error--> (file-error "No such file or directory" "sawfish/wm/util/x")

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.

Update the Spec-file

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.

Selfdefine xterm command

Dagfinn I. 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.

Utf 8 names fix

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.

See this post and this post

Pango draw() ignores font

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().

Titlebar updates

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 (call-after-property-changed 'WM_NAME ...) as a special case that should also check for _NEW_WM_NAME.

KDE tray fix 2

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.

Multihead placed patch

Fuchur

This patch fix window placement with multihead setup. Look here

KDE menus focus

Harald van Dijk

Don't grab focus on KDE menus.

KDE system tray fix

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.

Net wm properties

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.

Reparenting cleanup

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.

Buffer overflow in fonts.c

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.

ShapeInput in events.c

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:

Blank lines in prompt

Sven Schoenung

The window opened by the prompt function shows two blank lines before the prompt even when they aren't needed.

Noprop desktop save

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.

bugzilla bugreport

debian bugreport

Update desktop file

Rodrigo Gallardo

The current Sawfish.desktop file does not comply with the freedesktop.org standard.

Fix select workspace

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

Fix Xlib client message

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].

[edit] Rejected patches

PatchAuthorDescription

Smoother cursor moving

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).

Rate this article:
Share this article: