]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/xonotic/maplist.c
Move double click detection from listbox subtypes to the superclass
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / maplist.c
index 60eeb445c6c4877caf508aa145ccf9c403d9e5ef..e05c7644f4885ed724ba2e9b570159c02f7dcc3e 100644 (file)
@@ -5,6 +5,7 @@ CLASS(XonoticMapList) EXTENDS(XonoticListBox)
        METHOD(XonoticMapList, draw, void(entity))
        METHOD(XonoticMapList, drawListBoxItem, void(entity, float, vector, float))
        METHOD(XonoticMapList, clickListBoxItem, void(entity, float, vector))
+       METHOD(XonoticMapList, doubleClickListBoxItem, void(entity, float, vector))
        METHOD(XonoticMapList, resizeNotify, void(entity, vector, vector, vector, vector))
        METHOD(XonoticMapList, refilter, void(entity))
        METHOD(XonoticMapList, refilterCallback, void(entity, entity))
@@ -20,9 +21,6 @@ CLASS(XonoticMapList) EXTENDS(XonoticListBox)
        ATTRIB(XonoticMapList, realUpperMargin1, float, 0)
        ATTRIB(XonoticMapList, realUpperMargin2, float, 0)
 
-       ATTRIB(XonoticMapList, lastClickedMap, float, -1)
-       ATTRIB(XonoticMapList, lastClickedTime, float, 0)
-
        ATTRIB(XonoticMapList, lastGametype, float, 0)
        ATTRIB(XonoticMapList, lastFeatures, float, 0)
 
@@ -144,21 +142,16 @@ void XonoticMapList_clickListBoxItem(entity me, float i, vector where)
        if(where_x <= me.columnPreviewOrigin + me.columnPreviewSize)
                if(where_x >= 0)
                        me.g_maplistCacheToggle(me, i);
+}
 
+void XonoticMapList_doubleClickListBoxItem(entity me, float i, vector where)
+{
        if(where_x >= me.columnNameOrigin)
                if(where_x <= 1)
                {
-                       if(i == me.lastClickedMap)
-                               if(time < me.lastClickedTime + 0.3)
-                               {
-                                       // DOUBLE CLICK!
-                                       // pop up map info screen
-                                       main.mapInfoDialog.loadMapInfo(main.mapInfoDialog, i, me);
-                                       DialogOpenButton_Click_withCoords(NULL, main.mapInfoDialog, me.origin + eX * (me.columnNameOrigin * me.size_x) + eY * ((me.itemHeight * i - me.scrollPos) * me.size_y), eY * me.itemAbsSize_y + eX * (me.itemAbsSize_x * me.columnNameSize));
-                                       return;
-                               }
-                       me.lastClickedMap = i;
-                       me.lastClickedTime = time;
+                       // pop up map info screen
+                       main.mapInfoDialog.loadMapInfo(main.mapInfoDialog, i, me);
+                       DialogOpenButton_Click_withCoords(NULL, main.mapInfoDialog, me.origin + eX * (me.columnNameOrigin * me.size_x) + eY * ((me.itemHeight * i - me.scrollPos) * me.size_y), eY * me.itemAbsSize_y + eX * (me.itemAbsSize_x * me.columnNameSize));
                }
 }