forked from e16/e16
1
0
Fork 0

Mon Sep 20 19:41:17 PDT 1999

(Mandrake)

yet more kde fixes.  Hopefully most of the window operations menu in kpanel
 should work now


SVN revision: 349
This commit is contained in:
Mandrake 1999-09-21 02:28:57 +00:00
parent 82d13ee3d7
commit 043c911a20
5 changed files with 155 additions and 38 deletions

View File

@ -2078,3 +2078,11 @@ menu.
Added some group issues to TODO file. I hope I get to finish that Added some group issues to TODO file. I hope I get to finish that
during this week. during this week.
-------------------------------------------------------------------------------
Mon Sep 20 19:41:17 PDT 1999
(Mandrake)
yet more kde fixes. Hopefully most of the window operations menu in kpanel
should work now

View File

@ -2256,7 +2256,7 @@ void KDE_UpdateFocusedWindow(void);
void KDE_SetNumDesktops(void); void KDE_SetNumDesktops(void);
void KDE_NewWindow(EWin * ewin); void KDE_NewWindow(EWin * ewin);
void KDE_RemoveWindow(EWin * ewin); void KDE_RemoveWindow(EWin * ewin);
void KDE_UpdateTitle(EWin * ewin); void KDE_UpdateClient(EWin * ewin);
/* sound.c functions */ /* sound.c functions */
Sample *LoadWav(char *file); Sample *LoadWav(char *file);

View File

@ -185,6 +185,7 @@ HandleClientMessage(XEvent * ev)
EDBUG_RETURN_; EDBUG_RETURN_;
} }
} }
if (mode.kde_support) if (mode.kde_support)
KDE_ProcessClientMessage(&(ev->xclient)); KDE_ProcessClientMessage(&(ev->xclient));
@ -1024,7 +1025,7 @@ HandleProperty(XEvent * ev)
UpdateBorderInfo(ewin); UpdateBorderInfo(ewin);
CalcEwinSizes(ewin); CalcEwinSizes(ewin);
if (mode.kde_support) if (mode.kde_support)
KDE_UpdateTitle(ewin); KDE_UpdateClient(ewin);
} }
if ((ewin->iconified) && (pm != ewin->client.icon_pmap)) if ((ewin->iconified) && (pm != ewin->client.icon_pmap))
{ {
@ -1052,6 +1053,8 @@ HandleProperty(XEvent * ev)
} }
} }
UngrabX(); UngrabX();
if (mode.kde_support)
KDE_ClientChange(win, ev->xproperty.atom);
} }
else if (win == root.win) else if (win == root.win)
{ {
@ -1061,14 +1064,9 @@ HandleProperty(XEvent * ev)
KDE_HintChange(ev->xproperty.atom); KDE_HintChange(ev->xproperty.atom);
} }
} }
else else if (mode.kde_support)
{ {
/* could be a KDE hint change */ KDE_ClientChange(win, ev->xproperty.atom);
if (mode.kde_support)
{
KDE_ClientChange(win, ev->xproperty.atom);
}
} }
EDBUG_RETURN_; EDBUG_RETURN_;
} }

167
src/kde.c
View File

@ -173,7 +173,7 @@ KDE_UpdateFocusedWindow(void)
} }
else else
{ {
if (getSimpleHint(root.win, KDE_ACTIVE_WINDOW)) if (*(getSimpleHint(root.win, KDE_ACTIVE_WINDOW)))
deleteHint(root.win, KDE_ACTIVE_WINDOW); deleteHint(root.win, KDE_ACTIVE_WINDOW);
} }
@ -199,21 +199,47 @@ KDE_NewWindow(EWin * ewin)
if (!ewin) if (!ewin)
EDBUG_RETURN_; EDBUG_RETURN_;
if (!getSimpleHint(ewin->client.win, KDE_WIN_TITLE)) if (!(ewin->internal))
{ {
if (!(ewin->internal)) if (!ewin->kde_hint)
{ {
XChangeProperty(disp, ewin->client.win, KDE_WIN_TITLE, XChangeProperty(disp, ewin->client.win, KDE_WIN_TITLE,
XA_STRING, 8, PropModeReplace, XA_STRING, 8, PropModeReplace,
(unsigned char *)ewin->client.title, (unsigned char *)ewin->client.title,
strlen(ewin->client.title) + 1); strlen(ewin->client.title) + 1);
if (!ewin->kde_hint)
if (ewin->sticky)
{ {
ewin->kde_hint = 1; setSimpleHint(ewin->client.win, KDE_WIN_STICKY, 1);
KDE_SendMessagesToModules(KDE_MODULE_WIN_ADD, ewin->client.win);
} }
else
{
setSimpleHint(ewin->client.win, KDE_WIN_STICKY, 0);
}
if (ewin->iconified)
{
setSimpleHint(ewin->client.win, KDE_WIN_ICONIFIED, 1);
}
else
{
setSimpleHint(ewin->client.win, KDE_WIN_ICONIFIED, 0);
}
if (ewin->toggle)
{
setSimpleHint(ewin->client.win, KDE_WIN_MAXIMIZED, 1);
}
else
{
setSimpleHint(ewin->client.win, KDE_WIN_MAXIMIZED, 0);
}
ewin->kde_hint = 1;
KDE_SendMessagesToModules(KDE_MODULE_WIN_ADD, ewin->client.win);
} }
} }
EDBUG_RETURN_; EDBUG_RETURN_;
} }
@ -298,11 +324,53 @@ KDE_AddModule(Window win)
{ {
if (!(lst[i]->internal)) if (!(lst[i]->internal))
{ {
XChangeProperty(disp, lst[i]->client.win, KDE_WIN_TITLE, XChangeProperty(disp, lst[i]->client.win,
KDE_WIN_TITLE,
XA_STRING, 8, PropModeReplace, XA_STRING, 8, PropModeReplace,
(unsigned char *)lst[i]->client.title, (unsigned char *)lst[i]->client.title,
strlen(lst[i]->client.title) + 1); strlen(lst[i]->client.title) + 1);
if (lst[i]->sticky)
{
if (!getSimpleHint(lst[i]->client.win,
KDE_WIN_STICKY))
setSimpleHint(lst[i]->client.win,
KDE_WIN_STICKY, 1);
}
else
{
if (getSimpleHint(lst[i]->client.win,
KDE_WIN_STICKY))
setSimpleHint(lst[i]->client.win,
KDE_WIN_STICKY, 0);
}
if (lst[i]->iconified)
{
if (!getSimpleHint(lst[i]->client.win,
KDE_WIN_ICONIFIED))
setSimpleHint(lst[i]->client.win,
KDE_WIN_ICONIFIED, 1);
}
else
{
if (getSimpleHint(lst[i]->client.win,
KDE_WIN_ICONIFIED))
setSimpleHint(lst[i]->client.win,
KDE_WIN_ICONIFIED, 0);
}
if (lst[i]->toggle)
{
if (!getSimpleHint(lst[i]->client.win,
KDE_WIN_MAXIMIZED))
setSimpleHint(lst[i]->client.win,
KDE_WIN_MAXIMIZED, 1);
}
else
{
if (getSimpleHint(lst[i]->client.win,
KDE_WIN_MAXIMIZED))
setSimpleHint(lst[i]->client.win,
KDE_WIN_MAXIMIZED, 0);
}
KDE_ClientMessage(win, KDE_MODULE_WIN_ADD, KDE_ClientMessage(win, KDE_MODULE_WIN_ADD,
lst[i]->client.win, CurrentTime); lst[i]->client.win, CurrentTime);
lst[i]->kde_hint = 1; lst[i]->kde_hint = 1;
@ -498,7 +566,7 @@ KDE_Init(void)
KDE_SetNumDesktops(); KDE_SetNumDesktops();
/* and we tell the root window to announce we're KDE compliant */ /* and we tell the root window to announce we're KDE compliant */
setSimpleHint(root.win, KDE_RUNNING, 1); setSimpleHint(root.win, KDE_RUNNING, 1);
mode.kde_support = 1; mode.kde_support = 1;
@ -558,7 +626,13 @@ KDE_Shutdown(void)
{ {
if (getSimpleHint(lst[i]->win, KDE_WIN_TITLE)) if (getSimpleHint(lst[i]->win, KDE_WIN_TITLE))
deleteHint(lst[i]->win, KDE_WIN_TITLE); deleteHint(lst[i]->win, KDE_WIN_TITLE);
if (getSimpleHint(lst[i]->win, KDE_WIN_MAXIMIZED))
deleteHint(lst[i]->win, KDE_WIN_MAXIMIZED);
if (getSimpleHint(lst[i]->win, KDE_WIN_ICONIFIED))
deleteHint(lst[i]->win, KDE_WIN_ICONIFIED);
if (getSimpleHint(lst[i]->win, KDE_WIN_STICKY))
deleteHint(lst[i]->win, KDE_WIN_STICKY);
lst[i]->kde_hint = 0;
} }
Efree(lst); Efree(lst);
} }
@ -618,31 +692,37 @@ KDE_ClientChange(Window win, Atom a)
if (a == KDE_WIN_STICKY) if (a == KDE_WIN_STICKY)
{ {
if (getSimpleHint(win, KDE_WIN_STICKY)) if (*(getSimpleHint(win, KDE_WIN_STICKY)))
{ {
MakeWindowSticky(ewin); if (!(ewin->sticky))
MakeWindowSticky(ewin);
} }
else else
{ {
MakeWindowUnSticky(ewin); if (ewin->sticky)
MakeWindowUnSticky(ewin);
} }
} }
else if (a == KDE_WIN_MAXIMIZED) else if (a == KDE_WIN_MAXIMIZED)
{ {
if (getSimpleHint(ewin->client.win, KDE_WIN_MAXIMIZED)) if (*(getSimpleHint(ewin->client.win, KDE_WIN_MAXIMIZED)))
{ {
ewin->toggle = 0; if (!(ewin->toggle))
MaxSize(ewin, "conservative"); {
MaxSize(ewin, "conservative");
}
} }
else else
{ {
ewin->toggle = 1; if (ewin->toggle)
MaxSize(ewin, "conservative"); {
MaxSize(ewin, "conservative");
}
} }
} }
else if (a == KDE_WIN_ICONIFIED) else if (a == KDE_WIN_ICONIFIED)
{ {
if (getSimpleHint(ewin->client.win, KDE_WIN_ICONIFIED)) if (*(getSimpleHint(ewin->client.win, KDE_WIN_ICONIFIED)))
{ {
if (!ewin->iconified) if (!ewin->iconified)
{ {
@ -665,12 +745,12 @@ KDE_ClientChange(Window win, Atom a)
{ {
if (getSimpleHint(win, KDE_WIN_DESKTOP)) if (getSimpleHint(win, KDE_WIN_DESKTOP))
{ {
long *desktop; long desktop;
desktop = getSimpleHint(win, KDE_WIN_DESKTOP) - 1; desktop = *(getSimpleHint(win, KDE_WIN_DESKTOP)) - 1;
if (ewin->desktop != *desktop) if (ewin->desktop != desktop)
{ {
MoveEwinToDesktop(ewin, *desktop); MoveEwinToDesktop(ewin, desktop);
} }
} }
@ -954,7 +1034,7 @@ KDE_ProcessClientMessage(XClientMessageEvent * event)
} }
else if (event->message_type == KDE_MODULE) else if (event->message_type == KDE_MODULE)
{ {
if (getSimpleHint(event->data.l[0], KDE_MODULE)) if (*(getSimpleHint(event->data.l[0], KDE_MODULE)))
{ {
KDE_AddModule(event->data.l[0]); KDE_AddModule(event->data.l[0]);
} }
@ -978,7 +1058,7 @@ KDE_ModuleAssert(Window win)
EDBUG(6, "KDE_ModuleAssert"); EDBUG(6, "KDE_ModuleAssert");
if (getSimpleHint(win, KDE_MODULE)) if (*(getSimpleHint(win, KDE_MODULE)))
{ {
KDE_AddModule(win); KDE_AddModule(win);
} }
@ -1042,7 +1122,8 @@ KDE_SetRootArea(void)
EDBUG(6, "KDE_SetRootArea"); EDBUG(6, "KDE_SetRootArea");
if (getSimpleHint(root.win, KDE_CURRENT_DESKTOP)) if (getSimpleHint(root.win, KDE_CURRENT_DESKTOP))
if (*(getSimpleHint(root.win, KDE_CURRENT_DESKTOP)) == desks.current + 1) if (*(getSimpleHint(root.win, KDE_CURRENT_DESKTOP)) ==
desks.current + 1)
EDBUG_RETURN_; EDBUG_RETURN_;
setSimpleHint(root.win, KDE_CURRENT_DESKTOP, desks.current + 1); setSimpleHint(root.win, KDE_CURRENT_DESKTOP, desks.current + 1);
@ -1114,10 +1195,10 @@ KDE_HintChange(Atom a)
} }
void void
KDE_UpdateTitle(EWin * ewin) KDE_UpdateClient(EWin * ewin)
{ {
EDBUG(6, "KDE_UpdateTitle"); EDBUG(6, "KDE_UpdateClient");
if (!ewin) if (!ewin)
EDBUG_RETURN_; EDBUG_RETURN_;
@ -1126,6 +1207,36 @@ KDE_UpdateTitle(EWin * ewin)
XA_STRING, 8, PropModeReplace, XA_STRING, 8, PropModeReplace,
(unsigned char *)ewin->client.title, (unsigned char *)ewin->client.title,
strlen(ewin->client.title) + 1); strlen(ewin->client.title) + 1);
if (ewin->sticky)
{
if (!getSimpleHint(ewin->client.win, KDE_WIN_STICKY))
setSimpleHint(ewin->client.win, KDE_WIN_STICKY, 1);
}
else
{
if (*(getSimpleHint(ewin->client.win, KDE_WIN_STICKY)))
setSimpleHint(ewin->client.win, KDE_WIN_STICKY, 0);
}
if (ewin->iconified)
{
if (!*(getSimpleHint(ewin->client.win, KDE_WIN_ICONIFIED)))
setSimpleHint(ewin->client.win, KDE_WIN_ICONIFIED, 1);
}
else
{
if (*(getSimpleHint(ewin->client.win, KDE_WIN_ICONIFIED)))
setSimpleHint(ewin->client.win, KDE_WIN_ICONIFIED, 0);
}
if (ewin->toggle)
{
if (!*(getSimpleHint(ewin->client.win, KDE_WIN_MAXIMIZED)))
setSimpleHint(ewin->client.win, KDE_WIN_MAXIMIZED, 1);
}
else
{
if (*(getSimpleHint(ewin->client.win, KDE_WIN_MAXIMIZED)))
setSimpleHint(ewin->client.win, KDE_WIN_MAXIMIZED, 0);
}
if (!(ewin->internal)) if (!(ewin->internal))
KDE_SendMessagesToModules(KDE_MODULE_WIN_CHANGE, ewin->client.win); KDE_SendMessagesToModules(KDE_MODULE_WIN_CHANGE, ewin->client.win);

View File

@ -1714,7 +1714,7 @@ CreateMenuFromThemes(char *name, MenuStyle * ms)
EDBUG_RETURN(m); EDBUG_RETURN(m);
} }
int int
BorderNameCompare(Border * b1, Border * b2) BorderNameCompare(Border * b1, Border * b2)
{ {
if (b1 && b2) if (b1 && b2)