컨텍스트 메뉴를 표시하기 위해 GTK 코드의 결함으로 작업하고 있습니다. 여러 메뉴 항목이있는 메뉴를 만든 후에는 gtk_menu_popup()
을 사용하여 메뉴를 표시합니다. 이 함수는 GtkMenuPositionFunc
유형의 함수 포인터를 사용하여 메뉴 위치를 지정할 수 있습니다. GTK에게 현재 위치를 유지하라는 것을 제외하고는 아무 것도하지 않고 메뉴의 일부가 모니터 외부에있는 경우 (함수의 네 번째 인수 사용) 메뉴를 누르십시오. 내 문제는 GTK가 메뉴를 밀어 넣을 때 메뉴 항목의 절대 위치가 바뀌지 않는다는 것이다. 따라서 스크롤 위치가 변경되어 메뉴에 스크롤 막대가 생깁니다. 메뉴 항목의 상대적 위치를 고정 된 채로 유지하려고합니다. 내가 할 수있는 방법이 있니? GTK 문서는이 문제에 대해 경고하지만 수정 방법에 대해서는 언급하지 않습니다. 참조 할 수 있도록 링크가 있습니다 :GTK : 컨텍스트 메뉴 항목 위치 지정
http://library.gnome.org/devel/gtk/unstable/GtkMenu.html#GtkMenuPositionFunc
편집 : 나는 몇 가지 코드를 포함 좋았을 것이지만, 논리도이 흩어져있다.
'NULL '을 건네주는 것은 어떤 경우에는 사용되므로 실제로 옵션이 아닙니다. 이 특정 사례에 대해 'NULL'을 전달하려고 시도했지만 문제가 해결되었습니다. 그렇다면 GTK에 메뉴의 위치를 변경하고 화면 밖으로 나가면 메뉴를 밀어 넣으라고 요청할 수는 없습니까? 그럴 가능성은 희박합니다. – 341008
기본 위치 지정 기능을 복사하여 거기에서 시작할 수 있도록 소스 코드에 대한 링크가 포함되었습니다. GTK가 원하는 것을 할 수 있다면, 그렇게 할 수 있습니다. – ptomato