Skip to content

Commit c6a5ccf

Browse files
chrst4Michael5601
authored andcommitted
Provide an option to disable the search dialog via Strg-F on list and
tables eclipse-platform#1830 add SWT.NO_SEARCH flag used in Table, Tree and List to prevent the interactive search (popup) in a GTK environment when set to true.
1 parent 173577f commit c6a5ccf

File tree

13 files changed

+86
-17
lines changed

13 files changed

+86
-17
lines changed

binaries/org.eclipse.swt.cocoa.macosx.aarch64/.settings/.api_filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,12 @@
463463
<message_argument value="IE"/>
464464
</message_arguments>
465465
</filter>
466+
<filter id="336658481">
467+
<message_arguments>
468+
<message_argument value="org.eclipse.swt.SWT"/>
469+
<message_argument value="NO_SEARCH"/>
470+
</message_arguments>
471+
</filter>
466472
</resource>
467473
<resource path="META-INF/MANIFEST.MF">
468474
<filter id="926941240">

binaries/org.eclipse.swt.cocoa.macosx.x86_64/.settings/.api_filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,12 @@
463463
<message_argument value="IE"/>
464464
</message_arguments>
465465
</filter>
466+
<filter id="336658481">
467+
<message_arguments>
468+
<message_argument value="org.eclipse.swt.SWT"/>
469+
<message_argument value="NO_SEARCH"/>
470+
</message_arguments>
471+
</filter>
466472
</resource>
467473
<resource path="META-INF/MANIFEST.MF">
468474
<filter id="926941240">

binaries/org.eclipse.swt.gtk.linux.aarch64/.settings/.api_filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,12 @@
463463
<message_argument value="IE"/>
464464
</message_arguments>
465465
</filter>
466+
<filter id="336658481">
467+
<message_arguments>
468+
<message_argument value="org.eclipse.swt.SWT"/>
469+
<message_argument value="NO_SEARCH"/>
470+
</message_arguments>
471+
</filter>
466472
</resource>
467473
<resource path="META-INF/MANIFEST.MF">
468474
<filter id="926941240">

binaries/org.eclipse.swt.gtk.linux.loongarch64/.settings/.api_filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,12 @@
463463
<message_argument value="IE"/>
464464
</message_arguments>
465465
</filter>
466+
<filter id="336658481">
467+
<message_arguments>
468+
<message_argument value="org.eclipse.swt.SWT"/>
469+
<message_argument value="NO_SEARCH"/>
470+
</message_arguments>
471+
</filter>
466472
</resource>
467473
<resource path="META-INF/MANIFEST.MF">
468474
<filter id="926941240">

binaries/org.eclipse.swt.gtk.linux.ppc64le/.settings/.api_filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,12 @@
463463
<message_argument value="IE"/>
464464
</message_arguments>
465465
</filter>
466+
<filter id="336658481">
467+
<message_arguments>
468+
<message_argument value="org.eclipse.swt.SWT"/>
469+
<message_argument value="NO_SEARCH"/>
470+
</message_arguments>
471+
</filter>
466472
</resource>
467473
<resource path="META-INF/MANIFEST.MF">
468474
<filter id="926941240">

binaries/org.eclipse.swt.gtk.linux.riscv64/.settings/.api_filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,12 @@
463463
<message_argument value="IE"/>
464464
</message_arguments>
465465
</filter>
466+
<filter id="336658481">
467+
<message_arguments>
468+
<message_argument value="org.eclipse.swt.SWT"/>
469+
<message_argument value="NO_SEARCH"/>
470+
</message_arguments>
471+
</filter>
466472
</resource>
467473
<resource path="META-INF/MANIFEST.MF">
468474
<filter id="926941240">

binaries/org.eclipse.swt.gtk.linux.x86_64/.settings/.api_filters

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<filter id="336658481">
1313
<message_arguments>
1414
<message_argument value="org.eclipse.swt.SWT"/>
15-
<message_argument value="IE"/>
15+
<message_argument value="NO_SEARCH"/>
1616
</message_arguments>
1717
</filter>
1818
</resource>

binaries/org.eclipse.swt.win32.win32.aarch64/.settings/.api_filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,12 @@
336336
<message_argument value="IE"/>
337337
</message_arguments>
338338
</filter>
339+
<filter id="336658481">
340+
<message_arguments>
341+
<message_argument value="org.eclipse.swt.SWT"/>
342+
<message_argument value="NO_SEARCH"/>
343+
</message_arguments>
344+
</filter>
339345
</resource>
340346
<resource path="Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleControlSite.java" type="org.eclipse.swt.ole.win32.OleControlSite">
341347
<filter id="643846161">

binaries/org.eclipse.swt.win32.win32.x86_64/.settings/.api_filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,12 @@
382382
<message_argument value="IE"/>
383383
</message_arguments>
384384
</filter>
385+
<filter id="336658481">
386+
<message_arguments>
387+
<message_argument value="org.eclipse.swt.SWT"/>
388+
<message_argument value="NO_SEARCH"/>
389+
</message_arguments>
390+
</filter>
385391
</resource>
386392
<resource path="Eclipse SWT/common/org/eclipse/swt/events/ArmListener.java" type="org.eclipse.swt.events.ArmListener">
387393
<filter id="576720909">

bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWT.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1564,6 +1564,20 @@ public class SWT {
15641564
*/
15651565
public static final int SEARCH = 1 << 7;
15661566

1567+
/**
1568+
* Style constant for disabling GTK interactive search popup (value is 1&lt;&lt;10).
1569+
* <br>Note that this is a <em>HINT</em> and is currently only supported on GTK.
1570+
* <p><b>Used By:</b></p>
1571+
* <ul>
1572+
* <li><code>List</code></li>
1573+
* <li><code>Table</code></li>
1574+
* <li><code>Tree</code></li>
1575+
* </ul>
1576+
*
1577+
* @since 3.130
1578+
*/
1579+
public static final int NO_SEARCH = 1 << 10;
1580+
15671581
/**
15681582
* Style constant for simple (not drop down) behavior (value is 1&lt;&lt;6).
15691583
* <br>Note that this is a <em>HINT</em>.

bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/List.java

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
* when a string is selected. A list may be single or multi select.
2929
* <dl>
3030
* <dt><b>Styles:</b></dt>
31-
* <dd>SINGLE, MULTI</dd>
31+
* <dd>SINGLE, MULTI, NO_SEARCH</dd>
3232
* <dt><b>Events:</b></dt>
3333
* <dd>Selection, DefaultSelection</dd>
3434
* </dl>
@@ -248,15 +248,8 @@ void createHandle (int index) {
248248
GTK3.gtk_scrolled_window_set_shadow_type (scrolledHandle, GTK.GTK_SHADOW_ETCHED_IN);
249249
}
250250
}
251-
/*
252-
* Bug in GTK. When a treeview is the child of an override shell,
253-
* and if the user has ever invokes the interactive search field,
254-
* and the treeview is disposed on a focus out event, it segment
255-
* faults. The fix is to disable the search field in an override
256-
* shell.
257-
*/
258-
if ((getShell ().style & SWT.ON_TOP) != 0) {
259-
GTK.gtk_tree_view_set_search_column (handle, -1);
251+
if (!search_enabled()) {
252+
GTK.gtk_tree_view_set_search_column(handle, -1);
260253
}
261254
// In GTK 3 font description is inherited from parent widget which is not how SWT has always worked,
262255
// reset to default font to get the usual behavior
@@ -1299,6 +1292,20 @@ public void removeSelectionListener(SelectionListener listener) {
12991292
eventTable.unhook (SWT.DefaultSelection,listener);
13001293
}
13011294

1295+
private boolean search_enabled() {
1296+
/* Disable searching when using NO_SEARCH */
1297+
if ((style & SWT.NO_SEARCH) != 0
1298+
/*
1299+
* Bug in GTK. When a treeview is the child of an override shell,
1300+
* and if the user has ever invokes the interactive search field,
1301+
* and the treeview is disposed on a focus out event, it segment
1302+
* faults. The fix is to disable the search field in an override
1303+
* shell.
1304+
*/
1305+
|| (getShell ().style & SWT.ON_TOP) != 0) return false;
1306+
return true;
1307+
}
1308+
13021309
/**
13031310
* Selects the item at the given zero-relative index in the receiver's
13041311
* list. If the item at the index was already selected, it remains

bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
* </p>
6060
* <dl>
6161
* <dt><b>Styles:</b></dt>
62-
* <dd>SINGLE, MULTI, CHECK, FULL_SELECTION, HIDE_SELECTION, VIRTUAL, NO_SCROLL</dd>
62+
* <dd>SINGLE, MULTI, CHECK, FULL_SELECTION, HIDE_SELECTION, VIRTUAL, NO_SCROLL, NO_SEARCH</dd>
6363
* <dt><b>Events:</b></dt>
6464
* <dd>Selection, DefaultSelection, SetData, MeasureItem, EraseItem, PaintItem</dd>
6565
* </dl>
@@ -3247,8 +3247,8 @@ void reskinChildren (int flags) {
32473247
}
32483248

32493249
boolean searchEnabled () {
3250-
/* Disable searching when using VIRTUAL */
3251-
if ((style & SWT.VIRTUAL) != 0) return false;
3250+
/* Disable searching when using VIRTUAL or NO_SEARCH */
3251+
if ((style & SWT.VIRTUAL) != 0 || (style & SWT.NO_SEARCH) != 0) return false;
32523252
return true;
32533253
}
32543254

bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
* </p>
6868
* <dl>
6969
* <dt><b>Styles:</b></dt>
70-
* <dd>SINGLE, MULTI, CHECK, FULL_SELECTION, VIRTUAL, NO_SCROLL</dd>
70+
* <dd>SINGLE, MULTI, CHECK, FULL_SELECTION, VIRTUAL, NO_SCROLL, NO_SEARCH</dd>
7171
* <dt><b>Events:</b></dt>
7272
* <dd>Selection, DefaultSelection, Collapse, Expand, SetData, MeasureItem, EraseItem, PaintItem, EmptinessChanged</dd>
7373
* </dl>
@@ -3449,8 +3449,8 @@ void reskinChildren (int flags) {
34493449
super.reskinChildren (flags);
34503450
}
34513451
boolean searchEnabled () {
3452-
/* Disable searching when using VIRTUAL */
3453-
if ((style & SWT.VIRTUAL) != 0) return false;
3452+
/* Disable searching when using VIRTUAL or NO_SEARCH */
3453+
if ((style & SWT.VIRTUAL) != 0 || (style & SWT.NO_SEARCH) != 0) return false;
34543454
return true;
34553455
}
34563456
/**

0 commit comments

Comments
 (0)