Bug 7097 - Zoom Hotkeys Are Nonfunctional With Xorg-7.1
Summary: Zoom Hotkeys Are Nonfunctional With Xorg-7.1
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/General (show other bugs)
Version: 7.1 (2006.05)
Hardware: x86 (IA32) Linux (All)
: high minor
Assignee: Daniel Stone
QA Contact:
URL:
Whiteboard:
Keywords: patch, regression
: 7343 8084 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-06-02 09:30 UTC by Frank Peters
Modified: 2006-08-31 05:17 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Xorg.0.log file (51.53 KB, text/plain)
2006-06-02 09:37 UTC, Frank Peters
no flags Details
Patch (1.50 KB, patch)
2006-07-01 13:08 UTC, Tilman Sauerbeck
no flags Details | Splinter Review
Patch 2nd try (4.17 KB, patch)
2006-07-07 10:43 UTC, Tilman Sauerbeck
no flags Details | Splinter Review

Description Frank Peters 2006-06-02 09:30:56 UTC
After compiling and installing xorg-7.1, the very convenient zoom Hotkeys
(Ctl-Alt-+ and Ctrl-Alt--) do not function as they did in previous versions.
Each time one of these key combinations is pressed, the screen mode is
unaffected and the following message appears on a terminal:

RADEONHandleMessage(0, "KeyEventMessage", "+VMode", retmsg)

The application xvidtune, however, *can* be used to cycle through
the various video modes.  Xvidtune -next and xvidtune -prev can
step through the modes listed in xorg.conf but the zoom Hotkeys
cannot.

Xorg-7.1 is the first version where this problem occurs.  In Xorg-6.9.0
the zoom Hotkeys function normally.

The Xorg server log file does not contain any obvious anomaly (a copy
can be provided upon request.)

The driver I am using is the Radeon driver.  Whether or not this
problem applies to other drivers I cannot say.

The system is Linux kernel 2.6.16 using x86_64 Pentium D.

The video card is based on the Radeon X300 (RV370) chip.

Here is the xorg.conf file:

Section "Module"
Load "dbe"
SubSection "extmod"
 Option    "omit xfree86-dga"
EndSubSection
Load "type1"
Load "freetype"
Load "glx"
EndSection

Section "Files"
RgbPath	"/usr/X11R7/share/X11/rgb"
FontPath "/usr/X11R7/lib64/X11/fonts/misc"
FontPath "/usr/X11R7/lib64/X11/fonts/100dpi:unscaled"
FontPath "/usr/X11R7/lib64/X11/fonts/75dpi:unscaled"
FontPath "/usr/X11R7/lib64/X11/fonts/Type1"
FontPath "/usr/X11R7/lib64/X11/fonts/TTF"
FontPath "/usr/share/fonts/freefont"
FontPath "/usr/share/fonts/ttf"
FontPath "/usr/share/fonts/math"
FontPath "/usr/share/fonts/ams"
FontPath "/usr/local/share/ghostscript/fonts"
FontPath "/usr/X11R7/lib64/X11/fonts/100dpi"
FontPath "/usr/X11R7/lib64/X11/fonts/75dpi"
ModulePath "/usr/X11R7/lib64/xorg/modules"
EndSection

Section "ServerFlags"
Option "blank time" "5"
Option "Xinerama" "Off"
EndSection

Section "InputDevice"
Identifier "Keyboard1"
Driver "kbd"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
Option "AutoRepeat" "200 30"
EndSection

Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "Auto"
Option "Device" "/dev/input/mouse0"
Option "Emulate3Buttons" "off"
Option "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
Identifier "G225f"
HorizSync 30-130
VertRefresh 50-160
DisplaySize 392 294
Modeline "1920x1440" 291.01 1920 2056 2248 2536 1440 1441 1444 1530
Modeline "2048x1536" 330.97 2048 2192 2400 2704 1536 1537 1540 1632
EndSection

Section "Device"
Identifier "ATI Radeon"
Driver "radeon"
Screen 0
Option "MergedFB" "Off"
#Option "MonitorLayout" "CRT, NONE"
EndSection

Section "Screen"
Identifier  "Screen1"
Device      "ATI Radeon"
Monitor     "G225f"
DefaultDepth 24
Subsection "Display"
    Depth      24
#    Modes       "640x480" "800x600" "1024x768" "1280x1024" "1600x1200"
    Modes       "800x600" "1280x1024" "1600x1200" "2048x1536"
    ViewPort    0 0
    EndSubsection
EndSection

# Highest level -- binds InputDevice and Screen
Section "ServerLayout"
Identifier "Normal Layout"
Screen "Screen1"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection
Comment 1 Frank Peters 2006-06-02 09:37:03 UTC
Created attachment 5789 [details]
Xorg.0.log file

Xserver log file
Comment 2 David Hagood 2006-06-29 16:01:01 UTC
I am seeing this as well. I find it interesting that xvidtune will still change
the resolutions, so that would tend to indicate that it is not a failure to have
other resolutions but a failure to correctly handle the keypress.

I would ask the question: is anybody seeing this with other drivers, or is this
just a Radeon issue?
Comment 3 Michel Dänzer 2006-06-30 00:14:42 UTC
(In reply to comment #2)
> I am seeing this as well. I find it interesting that xvidtune will still change
> the resolutions, so that would tend to indicate that it is not a failure to have
> other resolutions but a failure to correctly handle the keypress.

Indeed, this sounds related to keymap handling.

> I would ask the question: is anybody seeing this with other drivers, or is this
> just a Radeon issue?

This can hardly be a driver issue; the driver has no influence on the fact that
the X server seems to call the driver's HandleMessage() hook instead of the
SwitchMode() hook.
Comment 4 Tilman Sauerbeck 2006-07-01 13:08:02 UTC
Created attachment 6090 [details] [review]
Patch

I blame Daniel Stone :D

git diff 7257590651328f89d23e80da1ec6241542a660cd
5be8a66d324f3d5840b134ad29069eace64e6f12
changed case-insensitive string comparisons to case-sensitive ones.
xkbdata/xkeyboard-config are configured to send +VMode/-VMode to the server,
but it's expecting lower-case strings.

I'm not sure this patch is correct and I didn't try to compile that code.
Comment 5 Tilman Sauerbeck 2006-07-01 13:37:21 UTC
That patch doesn't compile, since _XkbStrCaseCmp() isn't available there.
Comment 6 Daniel Stone 2006-07-01 15:45:48 UTC
yeah, we should get general strcasecmp handling in the dix while we're at it. 
good pickup, thanks.
Comment 7 Daniel Stone 2006-07-04 04:11:37 UTC
*** Bug 7343 has been marked as a duplicate of this bug. ***
Comment 8 Tilman Sauerbeck 2006-07-07 10:43:51 UTC
Created attachment 6157 [details] [review]
Patch 2nd try

This patch adds dix/strcasecmp.c and defines strcasecmp() to xstrcasecmp() in
case libc doesn't provide it.

Any chance this can go into xorg-server 1.1.1?
Comment 9 Tilman Sauerbeck 2006-07-08 02:54:11 UTC
Fixed in 63f13e01ee6e7df1753f2113f4cff9538596be0a.
Comment 10 Michel Dänzer 2006-08-31 05:17:43 UTC
*** Bug 8084 has been marked as a duplicate of this bug. ***


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.