FLTK logo

Re: How to disable dotted square over Fl_Button

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Apps      FLTK Library      Forums      Links     Login 
 All Forums  |  Back to fltk.general  ]
 
Previous Message ]New Message | Reply ]Next Message ]

Re: How to disable dotted square over Fl_Button Greg Ercolano Mar 25, 2008  
 
Dmitry wrote:
>>> I need to disable dotted square when pressing Fl_Button, how
>>> can I do it?
>>
>>     my_button->clear_visible_focus();
> 
>  I did it in callback of my_button. But widget draws it anyway.

	Hmm, that *should* work if you set it at button creation time.
	True, though, it seems if you try to change it from the button's
	own callback, even if you call redraw() after, it stays on. Huh.

	For sure you can turn off the box for all widgets with Fl::visible_focus(onoff)
	http://fltk.org/documentation.php/doc-1.1/Fl.html#Fl.visible_focus
	..and that seems to work, even from the button's own callback.

	But not sure why my_button->clear_visible_focus(); doesn't work
	right away from the button's callback.

	Here's the replication which I tested with 1.1.x-svn on fedora3.
	After you push the button, the focus box is still there. You can
	keep pushing the button and it persists, so it's not a redraw issue.

	Seems the only way it work is if the mouse leaves the window first,
	and you force the window to be unfocused, then when you go back
	it will be OK from then on. So somehow this state is getting cached
	until the window goes out of focus.

	Is this a bug maybe?

#include <FL/Fl.H>
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Button.H>

static void Button_CB(Fl_Widget* in, void*) {
    in->clear_visible_focus();		// this doesn't work unless win goes out of focus
    in->redraw();			// this doesn't help

    // Fl::visible_focus(0);		// this works though, taking effect right away
}

int main(int argc, char *argv[]) {
    Fl_Double_Window win(0, 0, 220, 100, 0);
    Fl_Button but(10, 10, 200, 40, "Push To Disable Focus");
    but.callback(Button_CB);
    win.end();
    win.show();
    return(Fl::run());
}
Direct Link to Message ]
 
     
Previous Message ]New Message | Reply ]Next Message ]
 
 

Comments are owned by the poster. All other content is copyright 1998-2024 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.