Submenu Not Responding Until Second Click

Ron Tarrant rontarrant at gmail.com
Mon Feb 4 18:34:55 UTC 2019


I posted about this over on the GtkD site, but I suspect no one's 
home until later in the day.

I've been writing up examples for menus and found some odd 
behaviour. Now I'm wondering if I've missed something.

The code compiles without error and runs.

But after the window opens, first click on the menu results in a 
blue line appearing under the menu title. Second click and the 
menu finally drops.

This is the code boiled down to the bare minimum. It a single 
menu with a single item which is a submenu and it, in turn, has a 
single item.

The original was more elaborate with multiple menus and multiple 
items, only one of which was a submenu. I've tried a number of 
variations, but it seems that submenus always cause this 
behaviour.

I've also tried various OOP versions of this code. Same result.

Any ideas about why this is happening? Bug? Bad code? Programmer 
not holding mouth in correct position?



import std.stdio;

import gtk.MainWindow;
import gtk.Box;
import gtk.Main;
import gtk.Menu;
import gtk.MenuBar;
import gtk.MenuItem;
import gtk.Widget;
import gdk.Event;

void main(string[] args)
{
	Main.init(args);
	
	MainWindow testRig = new MainWindow("Title");

	Box appBox = new Box(Orientation.VERTICAL, 5);
	testRig.add(appBox);
	
	MenuBar menuBar = new MenuBar();
	appBox.packStart(menuBar, false, false, 0);
	
	MenuItem header = new MenuItem("File");
	menuBar.append(header);
	
	Menu fileMenu = new Menu();
	header.setSubmenu(fileMenu);
	
	MenuItem newFileItem = new MenuItem("New");
	fileMenu.append(newFileItem);
	
	Menu newFileSubmenu = new Menu();
	newFileItem.setSubmenu(newFileSubmenu);

	MenuItem dNewFileItem = new MenuItem("D File");
	newFileSubmenu.append(dNewFileItem);
	
	testRig.showAll();	
	Main.run();
	
} // main()



And it still does the same thing. First click, blue line. Second 
click, menu drops.


More information about the Digitalmars-d-learn mailing list