rev 4663 - trunk/packages/kdebase/debian/patches
Christopher Martin
chrsmrtn at costa.debian.org
Tue Oct 10 21:46:45 UTC 2006
Author: chrsmrtn
Date: 2006-10-10 21:46:45 +0000 (Tue, 10 Oct 2006)
New Revision: 4663
Added:
trunk/packages/kdebase/debian/patches/02_hal_kwin_fixes_branch.diff
Log:
Add the 2 patches that got kde-packagers CCs, nothing more.
Added: trunk/packages/kdebase/debian/patches/02_hal_kwin_fixes_branch.diff
===================================================================
--- trunk/packages/kdebase/debian/patches/02_hal_kwin_fixes_branch.diff (rev 0)
+++ trunk/packages/kdebase/debian/patches/02_hal_kwin_fixes_branch.diff 2006-10-10 21:46:45 UTC (rev 4663)
@@ -0,0 +1,94 @@
+#DPATCHLEVEL=0
+--- kioslave/media/mediamanager/halbackend.cpp (.../tags/KDE/3.5.5/kdebase) (revision 594301)
++++ kioslave/media/mediamanager/halbackend.cpp (.../branches/KDE/3.5/kdebase) (revision 594301)
+@@ -215,11 +215,6 @@
+ !libhal_device_get_property_bool(m_halContext, udi, "volume.disc.is_blank", NULL) )
+ return;
+
+- if ( ( libhal_device_get_property_QString(m_halContext, udi, "volume.fsusage") == "filesystem" &&
+- !libhal_device_get_property_bool(m_halContext, udi, "volume.is_mounted", NULL ) ) &&
+- ( libhal_device_get_property_bool(m_halContext, udi, "volume.ignore", NULL ) ) )
+- return;
+-
+ /* Query drive udi */
+ QString driveUdi = libhal_device_get_property_QString(m_halContext, udi, "block.storage_device");
+ /* We don't list floppy volumes because we list floppy drives */
+@@ -240,7 +235,19 @@
+
+ /* Create medium */
+ Medium* medium = new Medium(udi, "");
++ setVolumeProperties(medium);
+
++ if ( isInFstab( medium ).isNull() )
++ {
++ // if it's not mountable by user and not by HAL, don't show it at all
++ if ( ( libhal_device_get_property_QString(m_halContext, udi, "volume.fsusage") == "filesystem" &&
++ !libhal_device_get_property_bool(m_halContext, udi, "volume.is_mounted", NULL ) ) &&
++ ( libhal_device_get_property_bool(m_halContext, udi, "volume.ignore", NULL ) ) )
++ {
++ delete medium;
++ return;
++ }
++ }
+ QMap<QString,QString> options = MediaManagerUtils::splitOptions(mountoptions(udi));
+ kdDebug() << "automount " << options["automount"] << endl;
+ if (options["automount"] == "true" && allowNotification ) {
+@@ -248,7 +255,6 @@
+ if (!error.isEmpty())
+ kdDebug() << "error " << error << endl;
+ }
+- setVolumeProperties(medium);
+ m_mediaList.addMedium(medium, allowNotification);
+
+ return;
+@@ -992,7 +998,10 @@
+
+ for (; it!=end; ++it)
+ {
+- kdDebug() << "isInFstab -" << medium->deviceNode() << "- -" << (*it)->realDeviceName() << "- -" << (*it)->mountedFrom() << endl;
++ QString reald = (*it)->realDeviceName();
++ if ( reald.endsWith( "/" ) )
++ reald = reald.left( reald.length() - 1 );
++ kdDebug() << "isInFstab -" << medium->deviceNode() << "- -" << reald << "- -" << (*it)->mountedFrom() << "-" << endl;
+ if ((*it)->mountedFrom() == medium->deviceNode() || ( !medium->deviceNode().isEmpty() && (*it)->realDeviceName() == medium->deviceNode() ) )
+ {
+ QStringList opts = (*it)->mountOptions();
+--- kwin/client.cpp (.../tags/KDE/3.5.5/kdebase) (revision 594301)
++++ kwin/client.cpp (.../branches/KDE/3.5/kdebase) (revision 594301)
+@@ -477,17 +477,30 @@
+ // calls it or when the decoration is created/destroyed
+
+ if( Shape::version() >= 0x11 ) // 1.1, has input shape support
+- { // there appears to be no way to find out if a window has input
+- // shape set or not, so always set propagate the input shape
+- // (it's the same like the bounding shape by default)
+- XShapeCombineShape( qt_xdisplay(), frameId(), ShapeInput, 0, 0,
++ { // There appears to be no way to find out if a window has input
++ // shape set or not, so always propagate the input shape
++ // (it's the same like the bounding shape by default).
++ // Also, build the shape using a helper window, not directly
++ // in the frame window, because the sequence set-shape-to-frame,
++ // remove-shape-of-client, add-input-shape-of-client has the problem
++ // that after the second step there's a hole in the input shape
++ // until the real shape of the client is added and that can make
++ // the window lose focus (which is a problem with mouse focus policies)
++ static Window helper_window = None;
++ if( helper_window == None )
++ helper_window = XCreateSimpleWindow( qt_xdisplay(), qt_xrootwin(),
++ 0, 0, 1, 1, 0, 0, 0 );
++ XResizeWindow( qt_xdisplay(), helper_window, width(), height());
++ XShapeCombineShape( qt_xdisplay(), helper_window, ShapeInput, 0, 0,
+ frameId(), ShapeBounding, ShapeSet );
+- XShapeCombineShape( qt_xdisplay(), frameId(), ShapeInput,
++ XShapeCombineShape( qt_xdisplay(), helper_window, ShapeInput,
+ clientPos().x(), clientPos().y(),
+ window(), ShapeBounding, ShapeSubtract );
+- XShapeCombineShape( qt_xdisplay(), frameId(), ShapeInput,
++ XShapeCombineShape( qt_xdisplay(), helper_window, ShapeInput,
+ clientPos().x(), clientPos().y(),
+ window(), ShapeInput, ShapeUnion );
++ XShapeCombineShape( qt_xdisplay(), frameId(), ShapeInput, 0, 0,
++ helper_window, ShapeInput, ShapeSet );
+ }
+ }
+
More information about the pkg-kde-commits
mailing list