Version: 3.1.91, 3.1.x (using KDE KDE 3.3.91) Installed from: Compiled From Sources Compiler: gcc (GCC) 3.3.3 20040412 (Red Hat Linux 3.3.3-7) OS: Linux QT VERSION: 3.3.3 STEPS TO REPRODUCE: 1. Run KDevelop 2. Click "Edit" -> "Find in Files..." (Alt+Ctrl+F) 3. Click "Files:" text line 4. Press escape or click "Search" 5. Repeat step 2. 6. [Note blinking text caret both in "Pattern:" and "Files:" text fields] In extreme situation you can have up to 4 blinking text cursors in one small dialog window! This is very confusing, and does not follow well known focus behaviour.
Yeah.. this happens. And it sucks. I have no idea what causes it though. The grep dialog is a non-modal dialog, but that's the only obvious pecularity. I guess it could just as well be a modal dialog, but this change would mean changing a fair amount of code, IIRC. (Well.. that or keep the dialog on the heap, which is where it lives right now.)
SVN commit 618040 by dagerbo: Stop with the blinking already! BUG: 97376 M +8 -1 grepdlg.cpp M +1 -0 grepdlg.h --- branches/kdevelop/3.4/parts/grepview/grepdlg.cpp #618039:618040 @@ -335,11 +335,18 @@ // not beautiful, but works with all window // managers and Qt versions if (isVisible()) - QDialog::hide(); + hide(); +// QDialog::hide(); QDialog::show(); pattern_combo->setFocus(); } +void GrepDialog::hide() +{ + pattern_combo->setFocus(); + QDialog::hide(); +} + void GrepDialog::slotSynchDirectory( ) { KParts::ReadOnlyPart * part = dynamic_cast<KParts::ReadOnlyPart*>( m_part->partController()->activePart() ); --- branches/kdevelop/3.4/parts/grepview/grepdlg.h #618039:618040 @@ -61,6 +61,7 @@ { return keep_output_box->isChecked(); } void show(); + void hide(); signals: void searchClicked();