Bug 277965 - Kwin ignores the "desktop rows" setting
Summary: Kwin ignores the "desktop rows" setting
Status: RESOLVED FIXED
Alias: None
Product: plasma4
Classification: Plasma
Component: widget-pager (show other bugs)
Version: unspecified
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
: 277990 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-07-17 18:42 UTC by Ondrej Konecny
Modified: 2011-07-31 15:01 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 4.8.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ondrej Konecny 2011-07-17 18:42:48 UTC
Version:           unspecified (using Devel) 
OS:                Linux

When I change the "desktop rows" setting in pager settings to 1, kwin respects it ... until I reboot. After reboot and logging in again the desktops are in two rows again although the pager displays only one row.

This happens even with clean configuration (after renaming the ~/.kde4 folder and relogging).

Reproducible: Always

Steps to Reproduce:
1) Open the desktop pager settings
2) Set you want 1 desktop row
3) Set you want 5 desktops total
4) Click OK
5) Reboot and log in again
6) Go to the first desktop
7) Open a wwindow and place it to the bottom-left corner of the screen.
8) Cycle through desktops, to see results.

Actual Results:  
When switching from third to fourth desktop, you'll see the window from the first desktop to "fly over" in the upper-right corner of the screen. This indicates the desktops are rather in two rows than in one as the desktop pages is saying.

Expected Results:  
The desktop layout should respect the setting in pager.

OS: Linux (x86_64) release 2.6.39-ARCH
Compiler: gcc
Qt: 4.7.3
KDE Development Platform: 4.6.5 (4.6.5)
KWin: 4.6.5 (4.6.5)
Comment 1 Thomas Lübking 2011-07-18 11:42:07 UTC
*** Bug 277990 has been marked as a duplicate of this bug. ***
Comment 2 Thomas Lübking 2011-07-18 11:45:16 UTC
Please open konsole and fire: "xprop -root | grep _NET_DESKTOP_LAYOUT"
the block that starts with "_NET_SUPPORTED(ATOM)" is IRRELEVANT (but should exists)

-> Is there any other output?
Comment 3 Ondrej Konecny 2011-07-18 12:17:03 UTC
The output is following:
$ xprop -root | /bin/grep _NET_DESKTOP_LAYOUT
_NET_SUPPORTED(ATOM) = _NET_SUPPORTED, _NET_SUPPORTING_WM_CHECK, _NET_CLIENT_LIST, _NET_CLIENT_LIST_STACKING, _NET_NUMBER_OF_DESKTOPS, _NET_DESKTOP_GEOMETRY, _NET_CURRENT_DESKTOP, _NET_DESKTOP_NAMES, _NET_ACTIVE_WINDOW, _NET_WORKAREA, _NET_DESKTOP_LAYOUT, _NET_CLOSE_WINDOW, _NET_RESTACK_WINDOW, _NET_SHOWING_DESKTOP, _NET_WM_MOVERESIZE, _NET_MOVERESIZE_WINDOW, _NET_WM_NAME, _NET_WM_VISIBLE_NAME, _NET_WM_DESKTOP, _NET_WM_WINDOW_TYPE, _NET_WM_WINDOW_TYPE_NORMAL, _NET_WM_WINDOW_TYPE_DESKTOP, _NET_WM_WINDOW_TYPE_DOCK, _NET_WM_WINDOW_TYPE_TOOLBAR, _NET_WM_WINDOW_TYPE_MENU, _NET_WM_WINDOW_TYPE_DIALOG, _NET_WM_WINDOW_TYPE_UTILITY, _NET_WM_WINDOW_TYPE_SPLASH, _KDE_NET_WM_WINDOW_TYPE_OVERRIDE, _KDE_NET_WM_WINDOW_TYPE_TOPMENU, _NET_WM_STATE, _NET_WM_STATE_MODAL, _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ, _NET_WM_STATE_SHADED, _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_STATE_SKIP_PAGER, _NET_WM_STATE_HIDDEN, _NET_WM_STATE_FULLSCREEN, _NET_WM_STATE_ABOVE, _NET_WM_STATE_BELOW, _NET_WM_STATE_DEMANDS_ATTENTION, _NET_WM_STATE_STAYS_ON_TOP, _NET_WM_STRUT, _NET_WM_STRUT_PARTIAL, _NET_WM_ICON_GEOMETRY, _NET_WM_ICON, _NET_WM_PID, _NET_WM_PING, _NET_WM_USER_TIME, _NET_STARTUP_ID, _NET_WM_FULLSCREEN_MONITORS, _NET_WM_ALLOWED_ACTIONS, _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_FRAME_EXTENTS, _KDE_NET_WM_FRAME_STRUT, _KDE_NET_WM_TEMPORARY_RULES, _NET_WM_FULL_PLACEMENT
Comment 4 Thomas Lübking 2011-07-18 12:47:35 UTC
Pager layout isn't set -> pager bug (? Or an unilateral step to depreach this approach?)
Comment 5 illumilore 2011-07-18 18:30:18 UTC
$ xprop -root | grep _NET_DESKTOP_LAYOUT
_NET_DESKTOP_LAYOUT(CARDINAL) = 0, 4, 1, 0
_NET_SUPPORTED(ATOM) = _NET_SUPPORTED, _NET_SUPPORTING_WM_CHECK, _NET_CLIENT_LIST, _NET_CLIENT_LIST_STACKING, _NET_NUMBER_OF_DESKTOPS, _NET_DESKTOP_GEOMETRY, _NET_CURRENT_DESKTOP, _NET_DESKTOP_NAMES, _NET_ACTIVE_WINDOW, _NET_WORKAREA, _NET_DESKTOP_LAYOUT, _NET_CLOSE_WINDOW, _NET_RESTACK_WINDOW, _NET_SHOWING_DESKTOP, _NET_WM_MOVERESIZE, _NET_MOVERESIZE_WINDOW, _NET_WM_NAME, _NET_WM_VISIBLE_NAME, _NET_WM_DESKTOP, _NET_WM_WINDOW_TYPE, _NET_WM_WINDOW_TYPE_NORMAL, _NET_WM_WINDOW_TYPE_DESKTOP, _NET_WM_WINDOW_TYPE_DOCK, _NET_WM_WINDOW_TYPE_TOOLBAR, _NET_WM_WINDOW_TYPE_MENU, _NET_WM_WINDOW_TYPE_DIALOG, _NET_WM_WINDOW_TYPE_UTILITY, _NET_WM_WINDOW_TYPE_SPLASH, _KDE_NET_WM_WINDOW_TYPE_OVERRIDE, _KDE_NET_WM_WINDOW_TYPE_TOPMENU, _NET_WM_STATE, _NET_WM_STATE_MODAL, _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ, _NET_WM_STATE_SHADED, _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_STATE_SKIP_PAGER, _NET_WM_STATE_HIDDEN, _NET_WM_STATE_FULLSCREEN, _NET_WM_STATE_ABOVE, _NET_WM_STATE_BELOW, _NET_WM_STATE_DEMANDS_ATTENTION, _NET_WM_STATE_STAYS_ON_TOP, _NET_WM_STRUT, _NET_WM_STRUT_PARTIAL, _NET_WM_ICON_GEOMETRY, _NET_WM_ICON, _NET_WM_PID, _NET_WM_PING, _NET_WM_USER_TIME, _NET_STARTUP_ID, _NET_WM_FULLSCREEN_MONITORS, _NET_WM_ALLOWED_ACTIONS, _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_FRAME_EXTENTS, _KDE_NET_WM_FRAME_STRUT, _NET_WM_FRAME_OVERLAP, _KDE_NET_WM_TEMPORARY_RULES, _NET_WM_FULL_PLACEMEN

The first line does not appear after reboot, it only appears after I have redone the pager settings to set it back to one row. So that first line gets wiped after reboot.
Comment 6 Ondrej Konecny 2011-07-21 10:20:28 UTC
While waiting for the fix I've found a workaround. Put the following code somewhere to your autorun:

#!/bin/bash
xprop -root -f _NET_DESKTOP_LAYOUT 32cccc -set _NET_DESKTOP_LAYOUT "0,5,1,0"

I am not sure what the numbers mean, but seems like the "5" is the number of desktops and the "1" is the number of desktop rows.
Comment 7 Martin Flöser 2011-07-31 15:01:43 UTC
Git commit 4bf7761307a2453a63d918c60e13c26980727830 by Martin Gräßlin.
Committed on 24/07/2011 at 14:59.
Pushed by graesslin into branch 'master'.

Move control of desktop layout from pager to KWin

The desktop layout (number of rows) should be
controlled by the window manager as it is also
responsible for the number of desktops and the
names of them.

The setting for the rows is moved from the pager
UI to the virtual desktops KCM. The desktop layout
is set when KWin starts and updated by the KCM.

With this change there is no process claiming the
manager selection for pager any more. This means
the KDE Plasma Workspaces are no longer compliant
to the complete section of _NET_DESKTOP_LAYOUT in
the EWMH.

REVIEW: 102073
BUG: 277965
FEATURE: 105779
FEATURE: 213353
FIXED-IN: 4.8.0

M  +10   -0    kwin/workspace.cpp
M  +2    -2    kwin/kcmkwin/kwindesktop/main.ui
M  +4    -57   plasma/desktop/applets/pager/pagerConfig.ui
M  +30   -8    kwin/kcmkwin/kwindesktop/main.cpp
M  +0    -3    plasma/desktop/applets/pager/pager.h
M  +10   -47   plasma/desktop/applets/pager/pager.cpp

http://commits.kde.org/kde-workspace/4bf7761307a2453a63d918c60e13c26980727830