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
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_NewWindow(EWin * ewin);
void KDE_RemoveWindow(EWin * ewin);
void KDE_UpdateTitle(EWin * ewin);
void KDE_UpdateClient(EWin * ewin);
/* sound.c functions */
Sample *LoadWav(char *file);

View File

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

167
src/kde.c
View File

@ -173,7 +173,7 @@ KDE_UpdateFocusedWindow(void)
}
else
{
if (getSimpleHint(root.win, KDE_ACTIVE_WINDOW))
if (*(getSimpleHint(root.win, KDE_ACTIVE_WINDOW)))
deleteHint(root.win, KDE_ACTIVE_WINDOW);
}
@ -199,21 +199,47 @@ KDE_NewWindow(EWin * ewin)
if (!ewin)
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,
XA_STRING, 8, PropModeReplace,
(unsigned char *)ewin->client.title,
strlen(ewin->client.title) + 1);
if (!ewin->kde_hint)
if (ewin->sticky)
{
ewin->kde_hint = 1;
KDE_SendMessagesToModules(KDE_MODULE_WIN_ADD, ewin->client.win);
setSimpleHint(ewin->client.win, KDE_WIN_STICKY, 1);
}
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_;
}
@ -298,11 +324,53 @@ KDE_AddModule(Window win)
{
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,
(unsigned char *)lst[i]->client.title,
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,
lst[i]->client.win, CurrentTime);
lst[i]->kde_hint = 1;
@ -498,7 +566,7 @@ KDE_Init(void)
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);
mode.kde_support = 1;
@ -558,7 +626,13 @@ KDE_Shutdown(void)
{
if (getSimpleHint(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);
}
@ -618,31 +692,37 @@ KDE_ClientChange(Window win, Atom a)
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
{
MakeWindowUnSticky(ewin);
if (ewin->sticky)
MakeWindowUnSticky(ewin);
}
}
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;
MaxSize(ewin, "conservative");
if (!(ewin->toggle))
{
MaxSize(ewin, "conservative");
}
}
else
{
ewin->toggle = 1;
MaxSize(ewin, "conservative");
if (ewin->toggle)
{
MaxSize(ewin, "conservative");
}
}
}
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)
{
@ -665,12 +745,12 @@ KDE_ClientChange(Window win, Atom a)
{
if (getSimpleHint(win, KDE_WIN_DESKTOP))
{
long *desktop;
long desktop;
desktop = getSimpleHint(win, KDE_WIN_DESKTOP) - 1;
if (ewin->desktop != *desktop)
desktop = *(getSimpleHint(win, KDE_WIN_DESKTOP)) - 1;
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)
{
if (getSimpleHint(event->data.l[0], KDE_MODULE))
if (*(getSimpleHint(event->data.l[0], KDE_MODULE)))
{
KDE_AddModule(event->data.l[0]);
}
@ -978,7 +1058,7 @@ KDE_ModuleAssert(Window win)
EDBUG(6, "KDE_ModuleAssert");
if (getSimpleHint(win, KDE_MODULE))
if (*(getSimpleHint(win, KDE_MODULE)))
{
KDE_AddModule(win);
}
@ -1042,7 +1122,8 @@ KDE_SetRootArea(void)
EDBUG(6, "KDE_SetRootArea");
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_;
setSimpleHint(root.win, KDE_CURRENT_DESKTOP, desks.current + 1);
@ -1114,10 +1195,10 @@ KDE_HintChange(Atom a)
}
void
KDE_UpdateTitle(EWin * ewin)
KDE_UpdateClient(EWin * ewin)
{
EDBUG(6, "KDE_UpdateTitle");
EDBUG(6, "KDE_UpdateClient");
if (!ewin)
EDBUG_RETURN_;
@ -1126,6 +1207,36 @@ KDE_UpdateTitle(EWin * ewin)
XA_STRING, 8, PropModeReplace,
(unsigned char *)ewin->client.title,
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))
KDE_SendMessagesToModules(KDE_MODULE_WIN_CHANGE, ewin->client.win);

View File

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