[prev in list] [next in list] [prev in thread] [next in thread]
List: kwin
Subject: [Bug 205597] New: XSetWMNormalHints ( .. PResizeInc ) shrinks the
From: Werner Heisch <scm () heisch ! inka ! de>
Date: 2009-08-29 15:48:10
Message-ID: bug-205597-4790 () http ! bugs ! kde ! org/
[Download RAW message or body]
https://bugs.kde.org/show_bug.cgi?id=205597
Summary: XSetWMNormalHints ( .. PResizeInc ) shrinks the window
Product: kwin
Version: unspecified
Platform: SuSE RPMs
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: NOR
Component: general
AssignedTo: kwin@kde.org
ReportedBy: scm@heisch.inka.de
Version: (using KDE 4.3.0)
Compiler: gcc 4.3.34
OS: Linux
Installed from: SuSE RPMs
If XSetWMNormalHints manipulate PResizeInc, the window shrinks.
Normally, it should not change, onla the grif for next manual resize should be
set.
This is a demonstration program:
// List: kwin
// kore of this example was stolen from
// Subject: [Bug 120353] New: XSetWMNormalHints / PMaxSize doesn't work
correctly
// From: dmitry from spb <hail () pochtamt ! ru>
// Version: KWin 3.0 (using KDE 3.5.10)
// Installed from: Opensuse 11.1
// OS: Linux
// Please, run the attached test case.
// 1. You will see the simple window.
// 2. You will see, how the window. is shrinking.
// SOURCE CODE
// ===============================
// gcc X11-Grid.c -L /usr/X11R6/lib -l X11
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <stdio.h>
#define BORDER_WIDTH 2
/* Program wide globals */
Display *theDisplay;
int theScreen;
int theDepth;
XSizeHints theSizeHints;
Window OpenWindow(int x, int y, int width, int height, int flag) {
XSetWindowAttributes theWindowAttributes;
unsigned long theWindowMask;
XWMHints theWMHints;
Window theNewWindow;
long supplied_return;
/*Setting the attributes*/
theWindowAttributes.border_pixel
=BlackPixel(theDisplay,theScreen);
theWindowAttributes.background_pixel
= WhitePixel(theDisplay,theScreen);
theWindowAttributes.override_redirect = False;
theWindowMask = CWBackPixel|CWBorderPixel|CWOverrideRedirect;
theNewWindow = XCreateWindow( theDisplay,
RootWindow(theDisplay,theScreen),
x,y,width,height,
BORDER_WIDTH,theDepth,
InputOutput,
CopyFromParent,
theWindowMask,
&theWindowAttributes);
theWMHints.initial_state = NormalState;
theWMHints.flags = StateHint;
XSetWMHints(theDisplay,theNewWindow,&theWMHints);
theSizeHints.flags = PPosition | PSize | PMaxSize | PResizeInc;
theSizeHints.x = x;
theSizeHints.y = y;
theSizeHints.width = width;
theSizeHints.height = height;
theSizeHints.max_width = 1000;
theSizeHints.max_height = 800;
theSizeHints.width_inc = 10;
theSizeHints.height_inc = 10;
XSetWMNormalHints(theDisplay,theNewWindow,&theSizeHints);
XMapWindow(theDisplay,theNewWindow);
XFlush(theDisplay);
return theNewWindow;
}
int main(void){
Window theWindow;
int i;
theDisplay = XOpenDisplay(NULL);
theScreen = DefaultScreen(theDisplay);
theDepth = DefaultDepth(theDisplay,theScreen);
theWindow = OpenWindow(150,150,500,500,0);
XFlush(theDisplay);
/* here, the window is shrinking */
for (i=0;i<20;i++) {
usleep(100000L);
theSizeHints.flags |= PResizeInc;
theSizeHints.width_inc = 10+i;
theSizeHints.height_inc = 10+i;
XSetWMNormalHints(theDisplay,theWindow,&theSizeHints);
XMapWindow(theDisplay,theWindow);
XFlush(theDisplay);
}
sleep(2);
XDestroyWindow(theDisplay,theWindow);
}
--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
kwin mailing list
kwin@kde.org
https://mail.kde.org/mailman/listinfo/kwin
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic